@@ -7,111 +7,111 @@ import { fetchThreadTimelineEntries } from "@/lib/fetchThreadTimelineEntries";
77import { plainClient } from "@/lib/plainClient" ;
88
99export default async function ThreadPage ( {
10- params,
10+ params,
1111} : {
12- params : { threadId : string } ;
12+ params : { threadId : string } ;
1313} ) {
14- const threadId = params . threadId ;
14+ const threadId = params . threadId ;
1515
16- const { data } = await fetchThreadTimelineEntries ( {
17- threadId,
18- first : 100 ,
19- } ) ;
16+ const { data } = await fetchThreadTimelineEntries ( {
17+ threadId,
18+ first : 100 ,
19+ } ) ;
2020
21- if ( ! data ) {
22- return null ;
23- }
21+ if ( ! data ) {
22+ return null ;
23+ }
2424
25- const thread = data . thread ;
26- const timelineEntries = thread . timelineEntries ;
25+ const thread = data . thread ;
26+ const timelineEntries = thread . timelineEntries ;
2727
28- return (
29- < >
30- < Navigation hasBackButton title = { thread . title } />
31- < main className = { styles . main } >
32- < div className = { styles . timeline } >
33- { timelineEntries . edges . reverse ( ) . map ( ( e ) => {
34- const entry = e . node ;
35- if (
36- entry . entry . __typename !== "CustomEntry" &&
37- entry . entry . __typename !== "EmailEntry" &&
38- entry . entry . __typename !== "SlackReplyEntry" &&
39- entry . entry . __typename !== "SlackMessageEntry" &&
40- entry . entry . __typename !== "ChatEntry"
41- ) {
42- return null ;
43- }
28+ return (
29+ < >
30+ < Navigation hasBackButton title = { thread . title } />
31+ < main className = { styles . main } >
32+ < div className = { styles . timeline } >
33+ { timelineEntries . edges . reverse ( ) . map ( ( e ) => {
34+ const entry = e . node ;
35+ if (
36+ entry . entry . __typename !== "CustomEntry" &&
37+ entry . entry . __typename !== "EmailEntry" &&
38+ entry . entry . __typename !== "SlackReplyEntry" &&
39+ entry . entry . __typename !== "SlackMessageEntry" &&
40+ entry . entry . __typename !== "ChatEntry"
41+ ) {
42+ return null ;
43+ }
4444
45- return (
46- < div className = { styles . message } key = { entry . id } >
47- < div className = { styles . entryHeader } >
48- < div className = { styles . avatar } >
49- { getActorFullName ( entry . actor ) [ 0 ] . toUpperCase ( ) }
50- </ div >
51- < div >
52- < div className = { styles . actor } >
53- { getActorFullName ( entry . actor ) }
54- </ div >
55- < div className = { styles . timestamp } >
56- { getFormattedDate ( entry . timestamp . iso8601 ) }
57- </ div >
58- </ div >
59- </ div >
60- { entry . entry . __typename === "CustomEntry" &&
61- entry . entry . components . map ( ( component , idx ) => {
62- if ( component . __typename === "ComponentText" ) {
63- return (
64- < div
65- key = { `comp_${ component . text } ` }
66- className = { styles . component }
67- >
68- { component . text }
69- </ div >
70- ) ;
71- }
45+ return (
46+ < div className = { styles . message } key = { entry . id } >
47+ < div className = { styles . entryHeader } >
48+ < div className = { styles . avatar } >
49+ { getActorFullName ( entry . actor ) [ 0 ] . toUpperCase ( ) }
50+ </ div >
51+ < div >
52+ < div className = { styles . actor } >
53+ { getActorFullName ( entry . actor ) }
54+ </ div >
55+ < div className = { styles . timestamp } >
56+ { getFormattedDate ( entry . timestamp . iso8601 ) }
57+ </ div >
58+ </ div >
59+ </ div >
60+ { entry . entry . __typename === "CustomEntry" &&
61+ entry . entry . components . map ( ( component , idx ) => {
62+ if ( component . __typename === "ComponentText" ) {
63+ return (
64+ < div
65+ key = { `comp_${ component . text } ` }
66+ className = { styles . component }
67+ >
68+ { component . text }
69+ </ div >
70+ ) ;
71+ }
7272
73- return null ;
74- } ) }
75- { entry . entry . __typename === "ChatEntry" && (
76- < div > { entry . entry . text } </ div >
77- ) }
78- </ div >
79- ) ;
80- } ) }
81- </ div >
73+ return null ;
74+ } ) }
75+ { entry . entry . __typename === "ChatEntry" && (
76+ < div > { entry . entry . text } </ div >
77+ ) }
78+ </ div >
79+ ) ;
80+ } ) }
81+ </ div >
8282
83- < div className = { styles . threadInfo } >
84- < div className = { styles . title } > { thread . title } </ div >
85- < div className = { styles . description } > { thread . description } </ div >
83+ < div className = { styles . threadInfo } >
84+ < div className = { styles . title } > { thread . title } </ div >
85+ < div className = { styles . description } > { thread . description } </ div >
8686
87- < div className = { styles . threadInfoGrid } >
88- < div className = { styles . threadInfoProp } > Opened by:</ div >
89- < div className = { styles . threadInfoDesc } >
90- { getActorFullName ( thread . createdBy ) }
91- </ div >
87+ < div className = { styles . threadInfoGrid } >
88+ < div className = { styles . threadInfoProp } > Opened by:</ div >
89+ < div className = { styles . threadInfoDesc } >
90+ { thread . customer . fullName }
91+ </ div >
9292
93- < div className = { styles . threadInfoProp } > Opened:</ div >
94- < div className = { styles . threadInfoDesc } >
95- { getFormattedDate ( thread . createdAt . iso8601 ) }
96- </ div >
93+ < div className = { styles . threadInfoProp } > Opened:</ div >
94+ < div className = { styles . threadInfoDesc } >
95+ { getFormattedDate ( thread . createdAt . iso8601 ) }
96+ </ div >
9797
98- < div className = { styles . threadInfoProp } > Last activity:</ div >
99- < div className = { styles . threadInfoDesc } >
100- { getFormattedDate ( thread . updatedAt . iso8601 ) }
101- </ div >
98+ < div className = { styles . threadInfoProp } > Last activity:</ div >
99+ < div className = { styles . threadInfoDesc } >
100+ { getFormattedDate ( thread . updatedAt . iso8601 ) }
101+ </ div >
102102
103- < div className = { styles . threadInfoProp } > Status:</ div >
104- < div className = { styles . threadInfoDesc } >
105- In { thread . status . toLowerCase ( ) } queue
106- </ div >
103+ < div className = { styles . threadInfoProp } > Status:</ div >
104+ < div className = { styles . threadInfoDesc } >
105+ In { thread . status . toLowerCase ( ) } queue
106+ </ div >
107107
108- < div className = { styles . threadInfoProp } > Priority:</ div >
109- < div className = { styles . threadInfoDesc } >
110- { getPriority ( thread . priority ) }
111- </ div >
112- </ div >
113- </ div >
114- </ main >
115- </ >
116- ) ;
108+ < div className = { styles . threadInfoProp } > Priority:</ div >
109+ < div className = { styles . threadInfoDesc } >
110+ { getPriority ( thread . priority ) }
111+ </ div >
112+ </ div >
113+ </ div >
114+ </ main >
115+ </ >
116+ ) ;
117117}
0 commit comments