From 135063b069f4b4f8af80e874266c6e0771c88c1d Mon Sep 17 00:00:00 2001 From: KimByeongHun Date: Mon, 25 May 2026 22:56:50 +0900 Subject: [PATCH 1/6] =?UTF-8?q?design:=20=EC=B2=B4=ED=81=AC=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EC=BD=98=EC=9D=B4=20=EB=A7=A8=EC=95=9E=EC=97=90=20?= =?UTF-8?q?=EC=98=A4=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(tabs)/(folder)/folder-add-url.tsx | 2 ++ app/(tabs)/(folder)/folder-url-select.tsx | 2 ++ components/ui/selection-circle.tsx | 3 +++ 3 files changed, 7 insertions(+) diff --git a/app/(tabs)/(folder)/folder-add-url.tsx b/app/(tabs)/(folder)/folder-add-url.tsx index c83d4d2..47aa26e 100644 --- a/app/(tabs)/(folder)/folder-add-url.tsx +++ b/app/(tabs)/(folder)/folder-add-url.tsx @@ -233,6 +233,8 @@ const styles = StyleSheet.create({ top: 0, bottom: 0, justifyContent: 'center', + zIndex: 10, + elevation: 10, }, emptyState: { diff --git a/app/(tabs)/(folder)/folder-url-select.tsx b/app/(tabs)/(folder)/folder-url-select.tsx index 5dd64b7..d015fa2 100644 --- a/app/(tabs)/(folder)/folder-url-select.tsx +++ b/app/(tabs)/(folder)/folder-url-select.tsx @@ -241,6 +241,8 @@ const styles = StyleSheet.create({ top: 0, bottom: 0, justifyContent: 'center', + zIndex: 10, + elevation: 10, }, emptyState: { diff --git a/components/ui/selection-circle.tsx b/components/ui/selection-circle.tsx index c75c7de..2d7c202 100644 --- a/components/ui/selection-circle.tsx +++ b/components/ui/selection-circle.tsx @@ -30,6 +30,7 @@ const styles = StyleSheet.create({ borderRadius: CIRCLE_SIZE / 2, alignItems: 'center', justifyContent: 'center', + overflow: 'visible', }, unselected: { backgroundColor: Colors.brand.surface, @@ -46,6 +47,8 @@ const styles = StyleSheet.create({ borderBottomWidth: 2, borderRightWidth: 2, borderColor: Colors.brand.onPrimary, + zIndex: 2, + elevation: 2, transform: [{ rotate: '45deg' }, { translateY: -2 }], }, }); From 4e2b9e6379bc3a75cb4d9813761b784a36ecc9a0 Mon Sep 17 00:00:00 2001 From: KimByeongHun Date: Mon, 25 May 2026 23:53:56 +0900 Subject: [PATCH 2/6] =?UTF-8?q?design:=20=EC=B2=B4=ED=81=AC=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EC=BD=98=20=EB=A0=88=EC=9D=B4=EC=96=B4=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(tabs)/(folder)/folder-add-url.tsx | 33 ++++++++++++--------- app/(tabs)/(folder)/folder-url-select.tsx | 35 +++++++++++++---------- 2 files changed, 39 insertions(+), 29 deletions(-) diff --git a/app/(tabs)/(folder)/folder-add-url.tsx b/app/(tabs)/(folder)/folder-add-url.tsx index 47aa26e..3e2b346 100644 --- a/app/(tabs)/(folder)/folder-add-url.tsx +++ b/app/(tabs)/(folder)/folder-add-url.tsx @@ -25,19 +25,21 @@ interface SelectableCardProps { function SelectableCard({ link, selected, onToggle }: SelectableCardProps) { return ( - - onToggle(link.id)} - /> - {selected && ( - - )} + + + onToggle(link.id)} + /> + {selected && ( + + )} + @@ -216,7 +218,10 @@ const styles = StyleSheet.create({ height: 8, }, - cardRow: { + selectableCard: { + position: 'relative', + }, + cardLayer: { position: 'relative', borderRadius: 22, overflow: 'hidden', diff --git a/app/(tabs)/(folder)/folder-url-select.tsx b/app/(tabs)/(folder)/folder-url-select.tsx index d015fa2..1e37e5c 100644 --- a/app/(tabs)/(folder)/folder-url-select.tsx +++ b/app/(tabs)/(folder)/folder-url-select.tsx @@ -25,20 +25,22 @@ interface SelectableCardProps { function SelectableCard({ link, selected, onToggle }: SelectableCardProps) { return ( - - onToggle(link.id)} - /> - {/* 선택 시 카드 위에 어두운 오버레이 */} - {selected && ( - - )} + + + onToggle(link.id)} + /> + {/* 선택 시 카드 위에 어두운 오버레이 */} + {selected && ( + + )} + @@ -224,7 +226,10 @@ const styles = StyleSheet.create({ }, // Selectable card - cardRow: { + selectableCard: { + position: 'relative', + }, + cardLayer: { position: 'relative', borderRadius: 22, overflow: 'hidden', From a0369bc205aaf27e3aa97cb41c9d52c3f29dad3f Mon Sep 17 00:00:00 2001 From: KimByeongHun Date: Tue, 26 May 2026 01:46:21 +0900 Subject: [PATCH 3/6] =?UTF-8?q?design:=20=EC=B2=B4=ED=81=AC=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EC=BD=98=20=EC=9E=94=EC=83=81=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/ui/selection-circle.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/components/ui/selection-circle.tsx b/components/ui/selection-circle.tsx index 2d7c202..2915d30 100644 --- a/components/ui/selection-circle.tsx +++ b/components/ui/selection-circle.tsx @@ -47,8 +47,6 @@ const styles = StyleSheet.create({ borderBottomWidth: 2, borderRightWidth: 2, borderColor: Colors.brand.onPrimary, - zIndex: 2, - elevation: 2, transform: [{ rotate: '45deg' }, { translateY: -2 }], }, }); From 00b37c21ed3f60eae716217642e3dc1dda6d9c23 Mon Sep 17 00:00:00 2001 From: KimByeongHun Date: Tue, 26 May 2026 02:00:42 +0900 Subject: [PATCH 4/6] =?UTF-8?q?Revert=20"design:=20=EC=B2=B4=ED=81=AC?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=20=EC=9E=94=EC=83=81=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit a0369bc205aaf27e3aa97cb41c9d52c3f29dad3f. --- components/ui/selection-circle.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/ui/selection-circle.tsx b/components/ui/selection-circle.tsx index 2915d30..2d7c202 100644 --- a/components/ui/selection-circle.tsx +++ b/components/ui/selection-circle.tsx @@ -47,6 +47,8 @@ const styles = StyleSheet.create({ borderBottomWidth: 2, borderRightWidth: 2, borderColor: Colors.brand.onPrimary, + zIndex: 2, + elevation: 2, transform: [{ rotate: '45deg' }, { translateY: -2 }], }, }); From 6a562f73c099d0ad7f997a014c445383becdd05f Mon Sep 17 00:00:00 2001 From: KimByeongHun Date: Tue, 26 May 2026 15:32:17 +0900 Subject: [PATCH 5/6] =?UTF-8?q?refactor:=20=EC=84=A0=ED=83=9D=20=EB=A7=81?= =?UTF-8?q?=ED=81=AC=20=EC=B9=B4=EB=93=9C=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(tabs)/(folder)/folder-add-url.tsx | 63 ++-------------------- app/(tabs)/(folder)/folder-url-select.tsx | 65 ++--------------------- components/ui/selectable-link-card.tsx | 62 +++++++++++++++++++++ 3 files changed, 68 insertions(+), 122 deletions(-) create mode 100644 components/ui/selectable-link-card.tsx diff --git a/app/(tabs)/(folder)/folder-add-url.tsx b/app/(tabs)/(folder)/folder-add-url.tsx index 3e2b346..73be893 100644 --- a/app/(tabs)/(folder)/folder-add-url.tsx +++ b/app/(tabs)/(folder)/folder-add-url.tsx @@ -9,43 +9,10 @@ import { import { router, Stack, useLocalSearchParams } from 'expo-router'; import { Button } from '@/components/ui/button'; -import { CardLink } from '@/components/ui/card-link'; -import { SelectionCircle } from '@/components/ui/selection-circle'; +import { SelectableLinkCard } from '@/components/ui/selectable-link-card'; import { Colors, Typography } from '@/constants/theme'; import { getFolderErrorMessage, useFolders } from '@/context/folders-context'; -import { useSavedLinks, type SavedLink } from '@/context/saved-links-context'; - -// ─── Selectable card row ────────────────────────────────────────────────────── - -interface SelectableCardProps { - link: SavedLink; - selected: boolean; - onToggle: (id: number) => void; -} - -function SelectableCard({ link, selected, onToggle }: SelectableCardProps) { - return ( - - - onToggle(link.id)} - /> - {selected && ( - - )} - - - - - - ); -} +import { useSavedLinks } from '@/context/saved-links-context'; // ─── Screen ─────────────────────────────────────────────────────────────────── @@ -134,7 +101,7 @@ export default function FolderAddUrlScreen() { data={uncategorizedLinks} keyExtractor={(item) => String(item.id)} renderItem={({ item }) => ( - void; -} - -function SelectableCard({ link, selected, onToggle }: SelectableCardProps) { - return ( - - - onToggle(link.id)} - /> - {/* 선택 시 카드 위에 어두운 오버레이 */} - {selected && ( - - )} - - - - - - ); -} +import { useSavedLinks } from '@/context/saved-links-context'; // ─── Screen ─────────────────────────────────────────────────────────────────── @@ -138,7 +104,7 @@ export default function FolderUrlSelectScreen() { data={links} keyExtractor={(item) => String(item.id)} renderItem={({ item }) => ( - void; +} + +export function SelectableLinkCard({ link, selected, onToggle }: SelectableLinkCardProps) { + return ( + + + onToggle(link.id)} + /> + {selected && ( + + )} + + + + + + ); +} + +const styles = StyleSheet.create({ + selectableCard: { + position: 'relative', + }, + cardLayer: { + position: 'relative', + borderRadius: 22, + overflow: 'hidden', + }, + selectedOverlay: { + position: 'absolute', + inset: 0, + borderRadius: 22, + backgroundColor: Colors.brand.overlaySelected, + }, + checkOverlay: { + position: 'absolute', + right: 16, + top: 0, + bottom: 0, + justifyContent: 'center', + zIndex: 10, + elevation: 10, + }, +}); From 838ac6e7e80e43182d7de0d9eff5e15c91441858 Mon Sep 17 00:00:00 2001 From: KimByeongHun Date: Tue, 26 May 2026 15:40:57 +0900 Subject: [PATCH 6/6] =?UTF-8?q?refactor:=20=EC=B2=B4=ED=81=AC=EB=A7=88?= =?UTF-8?q?=ED=81=AC=20=EC=A4=91=EB=B3=B5=20=EB=A0=88=EC=9D=B4=EC=96=B4=20?= =?UTF-8?q?=EC=8A=A4=ED=83=80=EC=9D=BC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/ui/selection-circle.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/components/ui/selection-circle.tsx b/components/ui/selection-circle.tsx index 2d7c202..2915d30 100644 --- a/components/ui/selection-circle.tsx +++ b/components/ui/selection-circle.tsx @@ -47,8 +47,6 @@ const styles = StyleSheet.create({ borderBottomWidth: 2, borderRightWidth: 2, borderColor: Colors.brand.onPrimary, - zIndex: 2, - elevation: 2, transform: [{ rotate: '45deg' }, { translateY: -2 }], }, });