Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ android {

// 둜컬 κΈ°λ³Έκ°’(μˆ˜λ™ κ΄€λ¦¬μš©)
versionCode 15
versionName "1.3.0"
versionName "1.2.2

buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL",
"\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\""
Expand Down
5 changes: 3 additions & 2 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"newArchEnabled": true,
"ios": {
"supportsTablet": false,
"buildNumber": "1.3.0",
"buildNumber": "10",
"bundleIdentifier": "com.podostore.dasii",
"infoPlist": {
"NSUserTrackingUsageDescription": "λ§žμΆ€ν˜• μ½˜ν…μΈ /κ΄‘κ³  및 μ•± ν’ˆμ§ˆ κ°œμ„ μ„ μœ„ν•΄ μ‚¬μš©μž ν™œλ™ 데이터λ₯Ό μ‚¬μš©ν•  수 μžˆλ„λ‘ ν—ˆμš©ν•΄ μ£Όμ„Έμš”.",
Expand Down Expand Up @@ -80,6 +80,7 @@
],
"experiments": {
"typedRoutes": true
}
},
"assetBundlePatterns": ["**/*"]
}
}
2 changes: 1 addition & 1 deletion app/(tabs)/mypage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ export default function Mypage() {
/>
<SettingItem
label='버전 정보'
value={`V ${Constants.expoConfig?.version || '1.3.0'}`}
value={`V ${Constants.expoConfig?.version || '1.4.0'}`}
/>
<SettingItem label='문의 메일' value='podostore1111@gmail.com' />
</SettingSection>
Expand Down
23 changes: 16 additions & 7 deletions app/product/[id]/productDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { ReviewButton } from '@/components/common/buttons/ReviewButton';
import { ScrollToTopButton } from '@/components/common/buttons/ScrollToTopButton';
import DefaultModal from '@/components/common/modals/DefaultModal';
import Navigation from '@/components/layout/Navigation';
// import AISummary from '@/components/page/product/productDetail/AISummary';
import IngredientInfoBottomSheet from '@/components/page/product/productDetail/BottomSheet/IngredientInfoBottomSheet';
import CoupangTabBar from '@/components/page/product/productDetail/CoupangTabBar';
import IngredientSection from '@/components/page/product/productDetail/Ingredient/IngredientSection';
Expand Down Expand Up @@ -37,8 +38,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { FlatList, Image, Pressable, Text, View } from 'react-native';
import { SafeAreaView } from 'react-native-safe-area-context';

const fallbackPath = (id: string) => `/product/${id}`;

const tabs = [
{ key: 'ingredient', label: 'μ„±λΆ„ 정보' },
{ key: 'review', label: '리뷰' },
Expand Down Expand Up @@ -239,11 +238,21 @@ export default function ProductDetail() {

{/* 탭별 상단 μ½˜ν…μΈ  */}
{activeTab === 'ingredient' ? (
<IngredientSection
product={data}
onPressFunctionalInfo={openFunctionalSheet}
onPressOtherInfo={openOtherSheet}
/>
<View className='pt-4 gap-y-4'>
{/* <AISummary
summary={[
// TODO: api μ—°κ²°
'이 μ œν’ˆμ„ 먹으면 살도 λΉ μ§€κ³  얼꡴도 μ’‹μ•„μ§€κ³  킀도 크고 μ™„μ „ λŒ€λ°• 짱일 μˆ˜λ„ 있고 아닐 μˆ˜λ„ 있고 ν•¨λ§Œ 작숴봐',
'μž₯점은 이런데 μ–΄λ–€κ°€μš” μ™„μ „ 효과 있죠 짱인 κ±° κ°™μ£  근데 λ‹€ 쒋은가',
'κ³Όλ‹€ μ„­μ·¨ν•˜λ©΄ 뭐든 λ‹€ μ•ˆ μ’‹μ•„μš” λΆ€λ”” μ•„ν”„μ§€ λ§ˆμ‹œκ³  였래 μ‚¬μ„Έμš”...λΆμ„ΈνŽΈμ‚΄',
]}
/> */}
<IngredientSection
product={data}
onPressFunctionalInfo={openFunctionalSheet}
onPressOtherInfo={openOtherSheet}
/>
</View>
) : (
<View className='px-5 mt-5'>
<View className='flex-row items-center justify-between mb-5'>
Expand Down
22 changes: 22 additions & 0 deletions assets/icons/ic_ai_logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions components/page/home/BannerCarousel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export default function BannerCarousel({ data }: BannerCarouselProps) {
index: number;
}) => {
const isFocused = activeIndex === index;
console.log('banner item image:', JSON.stringify(item.image)); // μΆ”κ°€

return (
<Pressable
Expand Down
41 changes: 41 additions & 0 deletions components/page/product/productDetail/AISummary.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import IC_AI_LOGO from '@/assets/icons/ic_ai_logo.svg';
import { LinearGradient } from 'expo-linear-gradient';
import { Text, View } from 'react-native';

type Props = {
summary: string[];
};

export default function AISummary({ summary }: Props) {
return (
<View className='mx-4 mb-[10px]'>
<View className='flex-row items-center' style={{ gap: 2 }}>
<IC_AI_LOGO className='w-4 h-4' />
<Text className='text-lg font-n-eb text-gray-800'>
AI 기반 μ œν’ˆ μš”μ•½
</Text>
</View>
<LinearGradient
colors={['#FDFFFB', '#F5FDFE']}
locations={[0, 0.7, 0.95, 1]}
start={{ x: 0, y: 0 }}
end={{ x: 0, y: 1 }}
className='rounded-2xl px-4 py-4'
style={{
marginTop: 12,
borderWidth: 1,
borderColor: '#82E3AF33',
}}
>
<View className='gap-y-3'>
{summary.map((item, index) => (
<View key={index} className='flex-row items-start gap-x-2'>
<Text className='text-sm mt-[1px]'>β€’</Text>
<Text className='text-sm flex-1 leading-5'>{item}</Text>
</View>
))}
</View>
</LinearGradient>
</View>
);
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
// 기타 μ›λ£Œ
import ArrowRightIcon from '@/assets/icons/ic_arrow_right.svg';
import InfoIcon from '@/assets/icons/ic_info.svg';
import { useRouter } from 'expo-router';
import { Pressable, Text, View } from 'react-native';

interface Props {
ingredients: string[] | undefined;
onPressInfo: () => void;
}

// TODO: API μ—°κ²° ν•„μš” - μ›λ£Œλͺ…μœΌλ‘œ μ„±λΆ„ IDλ₯Ό μ‘°νšŒν•˜λŠ” APIκ°€ ν•„μš”ν•©λ‹ˆλ‹€.
const MOCK_INGREDIENT_ID = '1';

export default function OtherIngredientsSection({
ingredients,
onPressInfo,
}: Props) {
const router = useRouter();

if (!ingredients || ingredients.length === 0) {
return null;
}
Expand All @@ -30,11 +37,22 @@ export default function OtherIngredientsSection({
</Pressable>
</View>

<View className='bg-[#F6F5FA] rounded-xl p-4'>
<View className='bg-[#F6F5FA] rounded-xl px-4 py-2'>
{ingredients.map((item, index) => (
<Text key={index} className='text-b-sm font-n-bd mb-1'>
β€’ {item}
</Text>
<Pressable
key={index}
onPress={() =>
// TODO: API μ—°κ²° ν•„μš” - item(μ›λ£Œλͺ…)에 ν•΄λ‹Ήν•˜λŠ” μ‹€μ œ μ„±λΆ„ ID둜 ꡐ체해야 ν•©λ‹ˆλ‹€.
router.push(`/ingredient/${MOCK_INGREDIENT_ID}`)
}
className='flex-row items-center justify-between py-[10px]'
>
<View className='flex-row items-center gap-x-2'>
<Text className='text-b-sm font-n-bd'>β€’</Text>
<Text className='text-b-sm font-n-bd'>{item}</Text>
</View>
<ArrowRightIcon />
</Pressable>
))}
</View>
</View>
Expand Down
Loading