Skip to content

Commit e7c207e

Browse files
authored
The AUTO_GENERATED surcharge status is handled in Result and Place Detail pages. (#85)
1 parent 7bbf390 commit e7c207e

File tree

14 files changed

+74
-63
lines changed

14 files changed

+74
-63
lines changed

src/3_widgets/detail/api/GetPlaceDetail.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@ export async function GetPlaceDetail(id: string): Promise<PlaceDTO> {
2929

3030
const surchargeStatus = () => {
3131
switch (data.surchargeStatus) {
32-
case "UNKNOWN":
33-
return SurchargesStatusDTO.UNKNOWN
3432
case "REPORTED":
3533
return SurchargesStatusDTO.REPORTED
3634
case "CONFIRMED":
3735
return SurchargesStatusDTO.CONFIRMED
36+
case "AUTO_GENERATED":
37+
return SurchargesStatusDTO.AUTO_GENERATED
38+
case "REJECTED":
39+
return SurchargesStatusDTO.REJECTED
3840
default:
3941
return SurchargesStatusDTO.UNKNOWN
4042
}

src/3_widgets/detail/model/usePlaceViewModel.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ export const usePlaceViewModel = (placeId: string) => {
1818

1919
const surchargesStatus = (): SurchargesStatusModel => {
2020
switch (useGetPlaceQueryData?.status) {
21-
case SurchargesStatusDTO.CONFIRMED:
22-
return SurchargesStatusModel.Confirmed
2321
case SurchargesStatusDTO.REPORTED:
2422
return SurchargesStatusModel.Reported
25-
case SurchargesStatusDTO.UNKNOWN:
26-
return SurchargesStatusModel.Unknown
23+
case SurchargesStatusDTO.CONFIRMED:
24+
return SurchargesStatusModel.Confirmed
25+
case SurchargesStatusDTO.AUTO_GENERATED:
26+
return SurchargesStatusModel.AutoGenerated
27+
case SurchargesStatusDTO.REJECTED:
28+
return SurchargesStatusModel.Rejected
2729
default:
2830
return SurchargesStatusModel.Unknown
2931
}
@@ -61,12 +63,12 @@ export const usePlaceViewModel = (placeId: string) => {
6163

6264
const surchargesStatus = (): SurchargesStatusUI => {
6365
switch (placeModel.surcharges.status) {
64-
case SurchargesStatusModel.Confirmed:
65-
return SurchargesStatusUI.Confirmed
6666
case SurchargesStatusModel.Reported:
6767
return SurchargesStatusUI.Reported
68-
case SurchargesStatusModel.Unknown:
69-
return SurchargesStatusUI.Unknown
68+
case SurchargesStatusModel.Confirmed:
69+
return SurchargesStatusUI.Confirmed
70+
case SurchargesStatusModel.AutoGenerated:
71+
return SurchargesStatusUI.AutoGenerated
7072
default:
7173
return SurchargesStatusUI.Unknown
7274
}

src/3_widgets/detail/ui/components/surchargeInformation/SurchargesDetail.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { SurchargesUI, SurchargesStatusUI } from "@entities/surcharges"
2-
import { Confirmed, Reported, Unknown, StatusHelp } from '@shared/ui'
2+
import { Confirmed, Reported, Unknown, StatusHelp, AutoGenerated } from '@shared/ui'
33
import { ReportedDate } from "./dates/ReportedDate"
44
import { SurchargeRate } from "./rates/SurchargeRate"
55
import { ReportButton } from "./buttons/ReportButton"
@@ -21,13 +21,20 @@ export function SurchargesDetail(props: SurchargesDetailProps) {
2121
return <Confirmed />
2222
case SurchargesStatusUI.Reported:
2323
return <Reported />
24+
case SurchargesStatusUI.AutoGenerated:
25+
return <AutoGenerated />
2426
case SurchargesStatusUI.Unknown:
2527
return <Unknown />
2628
}
2729
}
2830

2931
function Rate() {
30-
if (!props.surchargesUI.rate) {
32+
33+
if (props.surchargesUI.status === SurchargesStatusUI.Unknown) {
34+
return null
35+
}
36+
37+
if (props.surchargesUI.rate === undefined) {
3138
return null
3239
}
3340

@@ -36,7 +43,7 @@ export function SurchargesDetail(props: SurchargesDetailProps) {
3643

3744
function Report() {
3845
switch (props.surchargesUI.status) {
39-
case SurchargesStatusUI.Confirmed:
46+
case SurchargesStatusUI.Confirmed || SurchargesStatusUI.AutoGenerated:
4047
return <ReportButton message='Something wrong?' onClickToReport={onClickToReport} />
4148
case SurchargesStatusUI.Reported:
4249
return null

src/3_widgets/report/model/viewmodels/useReportViewModel.ts

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ import { useUploadStore } from "../stores/useUploadStore"
77
import { UploadSurchargeInformation } from "../usecases/UploadSurchargeInformation"
88

99
import { PlaceModel } from "@entities/place"
10-
import { PlaceUI } from "@entities/place"
11-
12-
import { MakeAddress } from "@shared/model"
13-
import { SurchargesStatusModel, SurchargesStatusUI } from "@entities/surcharges"
1410

1511
export const useReportViewModel = (initialPlaceModel: PlaceModel) => {
1612

@@ -37,33 +33,8 @@ export const useReportViewModel = (initialPlaceModel: PlaceModel) => {
3733
const _setIsUploaded = useUploadStore((state) => state.setIsUploaded)
3834
const setIsError = useUploadStore((state) => state.setIsError)
3935

40-
const placeUI = useMemo((): PlaceUI => {
41-
42-
const surchargeState = () => {
43-
switch (_placeModel.surcharges.status) {
44-
case SurchargesStatusModel.Unknown:
45-
return SurchargesStatusUI.Unknown
46-
case SurchargesStatusModel.Reported:
47-
return SurchargesStatusUI.Reported
48-
case SurchargesStatusModel.Confirmed:
49-
return SurchargesStatusUI.Confirmed
50-
}
51-
}
52-
53-
return {
54-
id: _placeModel.id,
55-
name: _placeModel.displayName.text,
56-
address: MakeAddress(_placeModel.addressComponents),
57-
location: {
58-
latitude: _placeModel.location.latitude,
59-
longitude: _placeModel.location.longitude
60-
},
61-
surcharges: {
62-
status: surchargeState(),
63-
rate: _placeModel.surcharges.rate,
64-
reportedDate: _placeModel.surcharges.reportedDate
65-
}
66-
}
36+
const placeName = useMemo((): string => {
37+
return _placeModel.displayName.text
6738
},
6839
[_placeModel]
6940
)
@@ -136,7 +107,7 @@ export const useReportViewModel = (initialPlaceModel: PlaceModel) => {
136107
}
137108

138109
return {
139-
placeUI,
110+
placeName,
140111
totalAmount,
141112
surchargeAmount,
142113
isUploadImageButtonLoading,

src/3_widgets/report/ui/Report.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export function Report() {
5959

6060
return (
6161
<div className='ml-10 mr-10'>
62-
<PageHeader placeName={amountsViewModel.placeUI.name} />
62+
<PageHeader placeName={amountsViewModel.placeName} />
6363
<div className='flex flex-col items-center justify-center mt-4 gap-4'>
6464
<UploadButton
6565
loading={amountsViewModel.isUploadImageButtonLoading}
@@ -90,7 +90,7 @@ export function Report() {
9090
{/* When the uploading is successed. Show dimmed cover */}
9191
<UploadSuccess
9292
isUploaded={amountsViewModel.isUploaded}
93-
placeName={amountsViewModel.placeUI.name}
93+
placeName={amountsViewModel.placeName}
9494
goBack={handleBackToPlace}
9595
/>
9696
</div>

src/3_widgets/results/api/GetPlaces.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ export async function GetPlaces(searchText: string, nextPageToken?: string): Pro
77

88
const baseURL = import.meta.env.VITE_BASE_URL
99

10-
const requestURL = nextPageToken && nextPageToken != ''
11-
? `${baseURL}/api/places?searchText=${searchText}&nextPageToken=${nextPageToken}`
12-
: `${baseURL}/api/places?searchText=${searchText}`
10+
const requestURL = nextPageToken && nextPageToken != ''
11+
? `${baseURL}/api/places?searchText=${searchText}&nextPageToken=${nextPageToken}`
12+
: `${baseURL}/api/places?searchText=${searchText}`
1313

1414
const response = await fetch(requestURL, {
1515
method: 'GET'
@@ -21,17 +21,21 @@ export async function GetPlaces(searchText: string, nextPageToken?: string): Pro
2121

2222
const data = await response.json()
2323

24+
console.log(data)
25+
2426
return {
2527
places: data.places.map((place: any): PlaceDTO => {
2628

2729
const surchargeStatus = () => {
2830
switch (place.surchargeStatus) {
29-
case "UNKNOWN":
30-
return SurchargesStatusDTO.UNKNOWN
3131
case "REPORTED":
3232
return SurchargesStatusDTO.REPORTED
3333
case "CONFIRMED":
3434
return SurchargesStatusDTO.CONFIRMED
35+
case "AUTO_GENERATED":
36+
return SurchargesStatusDTO.AUTO_GENERATED
37+
case "REJECTED":
38+
return SurchargesStatusDTO.REJECTED
3539
default:
3640
return SurchargesStatusDTO.UNKNOWN
3741
}

src/3_widgets/results/model/usePlaceListViewModel.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ export const usePlaceListViewModel = (searchText: string, nextPageToken?: string
1717

1818
const status = () => {
1919
switch (place.status) {
20-
case SurchargesStatusDTO.CONFIRMED:
21-
return SurchargesStatusUI.Confirmed
2220
case SurchargesStatusDTO.REPORTED:
2321
return SurchargesStatusUI.Reported
24-
case SurchargesStatusDTO.UNKNOWN:
22+
case SurchargesStatusDTO.CONFIRMED:
23+
return SurchargesStatusUI.Confirmed
24+
case SurchargesStatusDTO.AUTO_GENERATED:
25+
return SurchargesStatusUI.AutoGenerated
26+
default:
2527
return SurchargesStatusUI.Unknown
2628
}
2729
}
@@ -41,9 +43,9 @@ export const usePlaceListViewModel = (searchText: string, nextPageToken?: string
4143
}
4244
}
4345
}) ?? []
44-
},
45-
[useGetPlacesQueryData]
46-
)
46+
},
47+
[useGetPlacesQueryData]
48+
)
4749

4850
return { places, isFetching }
4951
}

src/3_widgets/results/ui/Results.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Link, useLocation, useNavigate } from 'react-router-dom'
33
import { SearchBox } from '@features/searchBox'
44
import { Footer, StatusHelp } from '@shared/ui'
55
import { WrongAccess } from '@shared/ui'
6-
import { Confirmed, Reported } from '@shared/ui'
6+
import { Confirmed, Reported, AutoGenerated } from '@shared/ui'
77

88
import { usePlaceListViewModel } from '../model/usePlaceListViewModel'
99
import PlacesList from './placelist/PlaceList'
@@ -43,6 +43,7 @@ export function Results() {
4343
<div className='flex justify-center gap-2 mt-5'>
4444
<Confirmed />
4545
<Reported />
46+
<AutoGenerated />
4647
<StatusHelp includingUnknown={false} />
4748
</div>
4849
<div>

src/3_widgets/results/ui/placelist/PlaceItem.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,18 @@ function SurchargesBadge({ status, rate }: { status: SurchargesStatusUI, rate?:
3232
return null
3333
}
3434

35+
if (status === SurchargesStatusUI.Unknown) {
36+
return null
37+
}
38+
3539
const backgroundColor = () => {
3640
switch (status) {
3741
case SurchargesStatusUI.Confirmed:
3842
return 'bg-green-300'
3943
case SurchargesStatusUI.Reported:
4044
return 'bg-blue-300'
41-
case SurchargesStatusUI.Unknown:
42-
return 'bg-red-300'
45+
case SurchargesStatusUI.AutoGenerated:
46+
return 'bg-yellow-300'
4347
}
4448
}
4549

@@ -49,8 +53,8 @@ function SurchargesBadge({ status, rate }: { status: SurchargesStatusUI, rate?:
4953
return 'text-green-800'
5054
case SurchargesStatusUI.Reported:
5155
return 'text-blue-800'
52-
case SurchargesStatusUI.Unknown:
53-
return 'text-red-800'
56+
case SurchargesStatusUI.AutoGenerated:
57+
return 'text-yellow-800'
5458
}
5559
}
5660

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
export enum SurchargesStatusModel {
22
Confirmed,
33
Reported,
4+
AutoGenerated,
5+
Rejected,
46
Unknown,
57
}

0 commit comments

Comments
 (0)