11import React from "react" ;
22import styled , { css } from "styled-components" ;
3+ import { landscapeStyle } from "styles/landscapeStyle" ;
34import { Periods } from "consts/periods" ;
45import { useIsList } from "context/IsListProvider" ;
56import BookmarkIcon from "svgs/icons/bookmark.svg" ;
@@ -8,9 +9,43 @@ import LawBalanceIcon from "svgs/icons/law-balance.svg";
89import PileCoinsIcon from "svgs/icons/pile-coins.svg" ;
910import RoundIcon from "svgs/icons/round.svg" ;
1011import Field from "../Field" ;
11- import { landscapeStyle } from "styles/landscapeStyle" ;
12+ import { getCourtsPath } from "pages/Courts/CourtDetails" ;
13+ import { useCourtTree } from "hooks/queries/useCourtTree" ;
1214
1315const Container = styled . div < { isList : boolean ; isOverview ?: boolean } > `
16+ display: flex;
17+ width: 100%;
18+ gap: 8px;
19+ flex-direction: column;
20+ justify-content: flex-end;
21+
22+ ${ ( { isList } ) =>
23+ isList &&
24+ css `
25+ ${ landscapeStyle (
26+ ( ) => css `
27+ gap : 0 ;
28+ height : 100% ;
29+ `
30+ ) }
31+ ` } ;
32+ ` ;
33+
34+ const CourtBranchFieldContainer = styled . div < { isList ?: boolean ; isOverview ?: boolean } > `
35+ ${ ( { isOverview } ) =>
36+ isOverview &&
37+ css `
38+ ${ landscapeStyle (
39+ ( ) => css `
40+ display : flex;
41+ margin-top : 16px ;
42+ flex-wrap : wrap;
43+ `
44+ ) }
45+ ` } ;
46+ ` ;
47+
48+ const RestOfFieldsContainer = styled . div < { isList ?: boolean ; isOverview ?: boolean } > `
1449 display: flex;
1550 flex-direction: column;
1651 gap: 8px;
@@ -30,7 +65,6 @@ const Container = styled.div<{ isList: boolean; isOverview?: boolean }>`
3065 `
3166 ) }
3267 ` } ;
33-
3468 ${ ( { isOverview } ) =>
3569 isOverview &&
3670 css `
@@ -41,7 +75,6 @@ const Container = styled.div<{ isList: boolean; isOverview?: boolean }>`
4175 flex-direction : row;
4276 flex-wrap : wrap;
4377 justify-content : flex-start;
44- align-items : flex-start;
4578 `
4679 ) }
4780 ` } ;
@@ -92,64 +125,88 @@ const DisputeInfo: React.FC<IDisputeInfo> = ({
92125} ) => {
93126 const { isList } = useIsList ( ) ;
94127 const displayAsList = isList && ! overrideIsList ;
128+ const { data } = useCourtTree ( ) ;
129+ const courtPath = getCourtsPath ( data ?. court , courtId ) ;
130+ const items = [ ] ;
131+ items . push (
132+ ...( courtPath ?. map ( ( node ) => ( {
133+ text : node . name ,
134+ value : node . id ,
135+ } ) ) ?? [ ] )
136+ ) ;
137+ const courtBranchValue = items . map ( ( item ) => item . text ) . join ( " / " ) ;
95138
96139 return (
97140 < Container isList = { displayAsList } isOverview = { isOverview } >
98- { court && courtId && (
99- < Field
100- icon = { LawBalanceIcon }
101- name = "Court"
102- value = { court }
103- link = { `/courts/${ courtId } ` }
104- displayAsList = { displayAsList }
105- isOverview = { isOverview }
106- />
107- ) }
108- { category && (
109- < Field
110- icon = { BookmarkIcon }
111- name = "Category"
112- value = { category }
113- displayAsList = { displayAsList }
114- isOverview = { isOverview }
115- />
116- ) }
117- { ! category && displayAsList && (
118- < Field
119- icon = { BookmarkIcon }
120- name = "Category"
121- value = "General"
122- displayAsList = { displayAsList }
123- isOverview = { isOverview }
124- />
125- ) }
126- { round && (
127- < Field
128- icon = { RoundIcon }
129- name = "Round"
130- value = { round . toString ( ) }
131- displayAsList = { displayAsList }
132- isOverview = { isOverview }
133- />
134- ) }
135- { rewards && (
136- < Field
137- icon = { PileCoinsIcon }
138- name = "Juror Rewards"
139- value = { rewards }
140- displayAsList = { displayAsList }
141- isOverview = { isOverview }
142- />
143- ) }
144- { typeof period !== "undefined" && date && (
145- < Field
146- icon = { CalendarIcon }
147- name = { getPeriodPhrase ( period ) }
148- value = { ! displayAsList ? new Date ( date * 1000 ) . toLocaleString ( ) : formatDate ( date ) }
149- displayAsList = { displayAsList }
150- isOverview = { isOverview }
151- />
152- ) }
141+ < CourtBranchFieldContainer isOverview = { isOverview } >
142+ { court && courtId && isOverview && (
143+ < Field
144+ icon = { LawBalanceIcon }
145+ name = "Court Branch"
146+ value = { courtBranchValue }
147+ displayAsList = { displayAsList }
148+ isOverview = { isOverview }
149+ />
150+ ) }
151+ </ CourtBranchFieldContainer >
152+ < RestOfFieldsContainer isOverview = { isOverview } isList = { displayAsList } >
153+ { court && courtId && ! isOverview && (
154+ < Field
155+ icon = { LawBalanceIcon }
156+ name = "Court"
157+ value = { court }
158+ link = { `/courts/${ courtId } ` }
159+ displayAsList = { displayAsList }
160+ isOverview = { isOverview }
161+ />
162+ ) }
163+
164+ { category && (
165+ < Field
166+ icon = { BookmarkIcon }
167+ name = "Category"
168+ value = { category }
169+ displayAsList = { displayAsList }
170+ isOverview = { isOverview }
171+ />
172+ ) }
173+ { ! category && displayAsList && (
174+ < Field
175+ icon = { BookmarkIcon }
176+ name = "Category"
177+ value = "General"
178+ displayAsList = { displayAsList }
179+ isOverview = { isOverview }
180+ />
181+ ) }
182+ { round && (
183+ < Field
184+ icon = { RoundIcon }
185+ name = "Round"
186+ value = { round . toString ( ) }
187+ displayAsList = { displayAsList }
188+ isOverview = { isOverview }
189+ />
190+ ) }
191+ { rewards && (
192+ < Field
193+ icon = { PileCoinsIcon }
194+ name = "Juror Rewards"
195+ value = { rewards }
196+ displayAsList = { displayAsList }
197+ isOverview = { isOverview }
198+ />
199+ ) }
200+ { typeof period !== "undefined" && date && (
201+ < Field
202+ icon = { CalendarIcon }
203+ name = { getPeriodPhrase ( period ) }
204+ value = { ! displayAsList ? new Date ( date * 1000 ) . toLocaleString ( ) : formatDate ( date ) }
205+ displayAsList = { displayAsList }
206+ isOverview = { isOverview }
207+ />
208+ ) }
209+ </ RestOfFieldsContainer >
153210 </ Container >
154211 ) ;
155212} ;
0 commit comments