From 510d3535f3e8bf921b472996716d3dc92ee7ae4a Mon Sep 17 00:00:00 2001 From: l-lyun Date: Mon, 4 Aug 2025 15:12:32 +0900 Subject: [PATCH 01/15] deps: ummgoban/shared v0.0.5 version up --- package.json | 2 +- yarn.lock | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index e829245..85cd99c 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@react-navigation/native": "^6.1.18", "@react-navigation/stack": "^6.4.1", "@tanstack/react-query": "^5.66.9", - "@ummgoban/shared": "0.0.1-alpha.6", + "@ummgoban/shared": "0.0.5", "axios": "^1.7.4", "dayjs": "^1.11.13", "react": "18.3.1", diff --git a/yarn.lock b/yarn.lock index 39986db..82187dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4131,12 +4131,14 @@ __metadata: languageName: node linkType: hard -"@ummgoban/shared@npm:0.0.1-alpha.6": - version: 0.0.1-alpha.6 - resolution: "@ummgoban/shared@npm:0.0.1-alpha.6::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40ummgoban%2Fshared%2F0.0.1-alpha.6%2Fb1e3599cd964a5e0fa7115ba0f4339c6d986ccd6" +"@ummgoban/shared@npm:0.0.5": + version: 0.0.5 + resolution: "@ummgoban/shared@npm:0.0.5::__archiveUrl=https%3A%2F%2Fnpm.pkg.github.com%2Fdownload%2F%40ummgoban%2Fshared%2F0.0.5%2F28e2234e7108de316436755076c6c528d5b7ad44" peerDependencies: + axios: ">=1.7.4" react: ">=18.0.0" - checksum: e34d56624940aa68f23516f18cf2ab8648a8c87f692353f7055c0383fddd1bb6ae9ea0d6d99638357a0f8586b3c49ab83d66c8f7fd0cd5abd3b3615ff5eab4fd + react-native: ">=0.79.0" + checksum: 0099e47294cf58c71c1175d4d945d3aa3afe771d24b1c9e28f1caeccc515e2e7dee983c6573a668839abd21fb26383671240e063d5c5fc6c765e36751abb47c0 languageName: node linkType: hard @@ -4176,7 +4178,7 @@ __metadata: "@types/react": ^18.2.6 "@types/react-native-vector-icons": ^6.4.18 "@types/react-test-renderer": ^18.0.0 - "@ummgoban/shared": 0.0.1-alpha.6 + "@ummgoban/shared": 0.0.5 axios: ^1.7.4 babel-jest: ^29.6.3 babel-plugin-module-resolver: ^5.0.2 From 9db1ddbe2873c4c3a6e459dcb69c77ca9e3925a9 Mon Sep 17 00:00:00 2001 From: l-lyun Date: Mon, 4 Aug 2025 15:16:17 +0900 Subject: [PATCH 02/15] =?UTF-8?q?fix:=20=EC=9A=94=EC=9D=BC=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=ED=83=80=EC=9E=85=20shared=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=EB=A1=9C=20=EB=8C=80=EC=B9=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/screens/MarketInfoScreen/index.tsx | 3 ++- src/types/Market.ts | 17 +---------------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/screens/MarketInfoScreen/index.tsx b/src/screens/MarketInfoScreen/index.tsx index ab3be1f..19bffb0 100644 --- a/src/screens/MarketInfoScreen/index.tsx +++ b/src/screens/MarketInfoScreen/index.tsx @@ -16,7 +16,8 @@ import usePullDownRefresh from '@/hooks/usePullDownRefresh'; import {RootStackParamList} from '@/types/StackNavigationType'; import {format} from '@/utils/date'; -import {OpenHour, Weekday} from '@/types/Market'; +import {OpenHour, Weekday} from '@ummgoban/shared'; + import {useQueryClient} from '@tanstack/react-query'; import S from './MarketInfoScreen.style'; import {useReadManagers} from '@/apis/managers'; diff --git a/src/types/Market.ts b/src/types/Market.ts index a86d12b..7eff396 100644 --- a/src/types/Market.ts +++ b/src/types/Market.ts @@ -1,19 +1,4 @@ -import {ProductType} from '@ummgoban/shared'; - -export type Weekday = - | 'MONDAY' - | 'TUESDAY' - | 'WEDNESDAY' - | 'THURSDAY' - | 'FRIDAY' - | 'SATURDAY' - | 'SUNDAY'; - -export type OpenHour = { - dayOfWeek: Weekday; - openTime: Date | string | null; - closeTime: Date | string | null; -}; +import {ProductType, OpenHour} from '@ummgoban/shared'; export type MarketType = { id: number; From dd5c734319cfda607e168058894421de6077ce25 Mon Sep 17 00:00:00 2001 From: l-lyun Date: Mon, 4 Aug 2025 16:46:46 +0900 Subject: [PATCH 03/15] =?UTF-8?q?feat:=20=ED=9C=B4=EC=97=85=20=EC=B2=B4?= =?UTF-8?q?=ED=81=AC=EB=B0=95=EC=8A=A4=20=EC=83=9D=EC=84=B1=20=EB=B0=8F=20?= =?UTF-8?q?=EC=98=81=EC=97=85=20=EC=8B=9C=EA=B0=84=20=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MarketInfoScreen.style.tsx | 76 ++++++++-- src/screens/MarketInfoScreen/index.tsx | 143 ++++++++++-------- 2 files changed, 142 insertions(+), 77 deletions(-) diff --git a/src/screens/MarketInfoScreen/MarketInfoScreen.style.tsx b/src/screens/MarketInfoScreen/MarketInfoScreen.style.tsx index 866cc75..aba1b7e 100644 --- a/src/screens/MarketInfoScreen/MarketInfoScreen.style.tsx +++ b/src/screens/MarketInfoScreen/MarketInfoScreen.style.tsx @@ -8,6 +8,7 @@ const S = { Container: styled.View` flex: 1; `, + ScrollView: styled.ScrollView` padding: 16px; @@ -21,19 +22,75 @@ const S = { gap: 8px; `, + BusinessTimeInput: styled.View` + padding: 12px 40px; + `, + + TimeHeader: styled.View` + flex-direction: row; + align-items: center; + margin-bottom: 8px; + padding: 0 16px; + `, + + DayHeaderText: styled(Text)` + flex: 1; + text-align: left; + font-weight: bold; + font-size: 14px; + `, + + TimeHeaderText: styled(Text)` + flex: 1; + text-align: center; + font-weight: bold; + font-size: 14px; + `, + + ClosedHeaderText: styled(Text)` + flex: 1; + text-align: right; + font-weight: bold; + font-size: 14px; + `, + TimeContainer: styled.View` - display: flex; + flex-direction: row; + align-items: center; + margin-bottom: 4px; + padding: 0 8px; + `, + + DayText: styled(Text)` + flex: 1; + text-align: left; + `, + + TimeRange: styled.View` + flex: 1; flex-direction: row; align-items: center; justify-content: center; `, - TimePickerButton: styled(Button)``, + ClosedCheckboxWrapper: styled.View` + display: flex; + flex: 1; + align-items: flex-end; + `, + + ClosedCheckboxContainer: styled.View` + width: 36px; + justify-content: center; + align-items: center; + background-color: white; + border-radius: 8px; + margin: 4px; + `, - BusinessTimeInput: styled.View``, + TimePickerButton: styled(Button)``, ImageCardGrid: styled.View` - display: flex; flex-direction: row; flex-wrap: wrap; @@ -42,17 +99,12 @@ const S = { margin: 16px 0; `, - DayText: styled(Text)` - ${({theme}) => theme.fonts.body2} - `, - ImageCardPlusButton: styled(Button)` border: 1px solid #e0e0e0; - width: 100%; - margin: 16px 0; `, + ImageCard: styled.View<{width: number}>` position: relative; @@ -65,6 +117,7 @@ const S = { box-sizing: border-box; + height: 92px; border: 1px solid #e0e0e0; `, @@ -83,9 +136,8 @@ const S = { border-radius: 16px; - background-color: #fff; - display: flex; + background-color: #fff; justify-content: center; align-items: center; `, diff --git a/src/screens/MarketInfoScreen/index.tsx b/src/screens/MarketInfoScreen/index.tsx index 19bffb0..4f0f92f 100644 --- a/src/screens/MarketInfoScreen/index.tsx +++ b/src/screens/MarketInfoScreen/index.tsx @@ -4,7 +4,7 @@ import React, {useEffect, useState} from 'react'; import {Alert} from 'react-native'; import DatePicker from 'react-native-date-picker'; import {RefreshControl} from 'react-native-gesture-handler'; -import {Text} from 'react-native-paper'; +import {Text, Checkbox} from 'react-native-paper'; import {updateMarketInfo} from '@/apis/Market'; import {BottomButton, Label} from '@/components/common'; @@ -16,7 +16,7 @@ import usePullDownRefresh from '@/hooks/usePullDownRefresh'; import {RootStackParamList} from '@/types/StackNavigationType'; import {format} from '@/utils/date'; -import {OpenHour, Weekday} from '@ummgoban/shared'; +import {WEEKDAYS, OpenHour, dayMap} from '@ummgoban/shared'; import {useQueryClient} from '@tanstack/react-query'; import S from './MarketInfoScreen.style'; @@ -24,26 +24,6 @@ import {useReadManagers} from '@/apis/managers'; import ManagerLists from '@/components/manager/ManagerLists'; import useMarket from '@/hooks/useMarket'; -const WEEKDAYS: Weekday[] = [ - 'MONDAY', - 'TUESDAY', - 'WEDNESDAY', - 'THURSDAY', - 'FRIDAY', - 'SATURDAY', - 'SUNDAY', -]; - -const dayMap: Record = { - MONDAY: '월요일', - TUESDAY: '화요일', - WEDNESDAY: '수요일', - THURSDAY: '목요일', - FRIDAY: '금요일', - SATURDAY: '토요일', - SUNDAY: '일요일', -}; - const MarketInfoScreen = () => { const {profile} = useProfile(); const queryClient = useQueryClient(); @@ -80,27 +60,26 @@ const MarketInfoScreen = () => { const [openHours, setOpenHours] = useState( WEEKDAYS.map(day => ({ dayOfWeek: day, - openTime: null, - closeTime: null, + openTime: '', + closeTime: '', })), ); useEffect(() => { if (marketInfo) { - setSummary(marketInfo.summary); setMarketName(marketInfo.name); + setSummary(marketInfo.summary); + + const newOpenHours = WEEKDAYS.map(day => { + const found = marketInfo.openHours.find(h => h.dayOfWeek === day); - if (marketInfo.openHours?.length) { - const newOpenHours = WEEKDAYS.map(day => { - const found = marketInfo.openHours.find(h => h.dayOfWeek === day); - return { - dayOfWeek: day, - openTime: found ? new Date(`2024-01-01T${found.openTime}`) : null, - closeTime: found ? new Date(`2024-01-01T${found.closeTime}`) : null, - }; - }); - setOpenHours(newOpenHours); - } + return { + dayOfWeek: day, + openTime: found?.openTime ?? '', + closeTime: found?.closeTime ?? '', + }; + }); + setOpenHours(newOpenHours); } }, [marketInfo]); @@ -134,29 +113,62 @@ const MarketInfoScreen = () => { /> {/*