From a0bcbb691aed27f928cf0a4f605666f93c129503 Mon Sep 17 00:00:00 2001 From: vdema Date: Fri, 17 Apr 2026 01:59:17 -0400 Subject: [PATCH 1/3] Fixed image issue --- frontend/apps/mobile/components/OrgCard.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/apps/mobile/components/OrgCard.tsx b/frontend/apps/mobile/components/OrgCard.tsx index 3ef2e208..ad2ff71b 100644 --- a/frontend/apps/mobile/components/OrgCard.tsx +++ b/frontend/apps/mobile/components/OrgCard.tsx @@ -1,5 +1,6 @@ import React from "react"; import { View, Text, TouchableOpacity } from "react-native"; +import { Image } from "expo-image"; import { useTranslation } from "react-i18next"; import { useRouter } from "expo-router"; import { IconSymbol } from "@/components/ui/icon-symbol"; @@ -53,7 +54,15 @@ export function OrgCard({ pin, distance }: OrgCardProps) { className="h-[120px] w-[120px] items-center justify-center overflow-hidden rounded-2xl" style={{ backgroundColor: AppColors.imagePlaceholder }} > - + {pin.image ? ( + + ) : ( + + )} From 5aef2fe3e05d2eb115598fd22dfc58e2023eb47f Mon Sep 17 00:00:00 2001 From: vdema Date: Fri, 17 Apr 2026 13:41:59 -0400 Subject: [PATCH 2/3] Fix the map card issues --- backend/internal/supabase/seed/05_organization.sql | 4 ++-- bun.lock | 9 ++++++--- frontend/apps/mobile/components/OrgCard.tsx | 2 +- frontend/apps/mobile/components/OrgMapCard.tsx | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/backend/internal/supabase/seed/05_organization.sql b/backend/internal/supabase/seed/05_organization.sql index 6133a81b..54ad1bd9 100644 --- a/backend/internal/supabase/seed/05_organization.sql +++ b/backend/internal/supabase/seed/05_organization.sql @@ -14,7 +14,7 @@ INSERT INTO organization (id, name, active, pfp_s3_key, location_id, about_en, a 'Creative Arts Studio is a vibrant space for young artists to explore painting, sculpture, and mixed media. We inspire self-expression and creativity in children from age 4 and up.', 'Creative Arts Studio เป็นพื้นที่สำหรับศิลปินรุ่นเยาว์ในการสำรวจการวาดภาพ ประติมากรรม และศิลปะผสม เราสร้างแรงบันดาลใจในการแสดงออกและความคิดสร้างสรรค์ให้เด็กตั้งแต่อายุ 4 ปีขึ้นไป', '[{"href": "https://www.creativeartstudio.th", "label": "Website"}, {"href": "https://www.facebook.com/creativeartstudiobkk", "label": "Facebook"}, {"href": "https://www.instagram.com/creativeartstudio_bkk", "label": "Instagram"}]'::jsonb), -('40000000-0000-0000-0000-000000000004', 'Harmony Music School', true, NULL, '10000000-0000-0000-0000-000000000007', +('40000000-0000-0000-0000-000000000004', 'Harmony Music School', true, 'orgs/harmony_music_bkk.jpg', '10000000-0000-0000-0000-000000000007', 'Harmony Music School offers individual and group lessons in piano, guitar, violin, and voice. Our experienced instructors guide students from beginner to advanced levels in a nurturing environment.', 'Harmony Music School เปิดสอนบทเรียนเดี่ยวและกลุ่มสำหรับเปียโน กีตาร์ ไวโอลิน และการร้องเพลง ครูผู้สอนที่มีประสบการณ์ของเราแนะนำนักเรียนตั้งแต่ระดับเริ่มต้นจนถึงระดับสูงในสภาพแวดล้อมที่อบอุ่น', '[{"href": "https://www.harmonymusic.th", "label": "Website"}, {"href": "https://www.facebook.com/harmonymusicbkk", "label": "Facebook"}]'::jsonb), @@ -22,7 +22,7 @@ INSERT INTO organization (id, name, active, pfp_s3_key, location_id, about_en, a 'Tech Kids Workshop teaches children programming, game design, and electronics through project-based learning. We prepare the next generation of innovators with practical technology skills.', 'Tech Kids Workshop สอนการเขียนโปรแกรม การออกแบบเกม และอิเล็กทรอนิกส์ให้เด็กผ่านการเรียนรู้แบบโครงงาน เราเตรียมนวัตกรรุ่นถัดไปด้วยทักษะเทคโนโลยีที่ใช้งานได้จริง', '[{"href": "https://www.techkidsworkshop.com", "label": "Website"}, {"href": "https://www.instagram.com/techkidsworkshop", "label": "Instagram"}, {"href": "https://www.youtube.com/@techkidsworkshop", "label": "YouTube"}]'::jsonb), -('40000000-0000-0000-0000-000000000006', 'Language Learning Center', false, NULL, '10000000-0000-0000-0000-000000000009', +('40000000-0000-0000-0000-000000000006', 'Language Learning Center', false, 'orgs/language_learning_center.jpg', '10000000-0000-0000-0000-000000000009', 'Language Learning Center offers immersive language programs in English, Mandarin, and Japanese for children and teens. Our communicative approach builds fluency and cultural understanding.', 'Language Learning Center เปิดสอนหลักสูตรภาษาแบบอิมเมอร์สิฟในภาษาอังกฤษ จีนกลาง และญี่ปุ่น สำหรับเด็กและวัยรุ่น แนวทางการสื่อสารของเราสร้างความคล่องแคล่วและความเข้าใจทางวัฒนธรรม', '[{"href": "https://www.languagelearningcenter.th", "label": "Website"}, {"href": "https://www.facebook.com/languagelearningcenterbkk", "label": "Facebook"}]'::jsonb); diff --git a/bun.lock b/bun.lock index 4f6a5adf..f020090e 100644 --- a/bun.lock +++ b/bun.lock @@ -19,8 +19,8 @@ "name": "skillspark", "version": "1.0.0", "dependencies": { - "@expo-google-fonts/archivo": "^0.4.2", "@expo-google-fonts/nunito-sans": "^0.4.2", + "@expo-google-fonts/plus-jakarta-sans": "^0.4.2", "@expo/ngrok": "^4.1.3", "@expo/vector-icons": "^15.0.3", "@gorhom/bottom-sheet": "^5.2.8", @@ -31,6 +31,7 @@ "@skillspark/api-client": "workspace:*", "@stripe/stripe-react-native": "^0.62.0", "expo": "^54.0.33", + "expo-clipboard": "~8.0.8", "expo-constants": "~18.0.13", "expo-font": "^14.0.11", "expo-haptics": "~15.0.8", @@ -405,10 +406,10 @@ "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], - "@expo-google-fonts/archivo": ["@expo-google-fonts/archivo@0.4.2", "", {}, "sha512-FLhI4/ZVIFSHHxx15Z7Rr4QX/4ZrJozEebBEFSdHSRRwULGCuSIpbb3dz56Hslux6LZEnJ1mVpZ6CyVpUzLwIg=="], - "@expo-google-fonts/nunito-sans": ["@expo-google-fonts/nunito-sans@0.4.2", "", {}, "sha512-e4+jUhgXNC6Zahf3MQwiiUimjWPp/Noe5v7CxBDbvXED+E7p7/egDaXKTbLwSBJku/mP3N+vNdJwk5xKAjkQmg=="], + "@expo-google-fonts/plus-jakarta-sans": ["@expo-google-fonts/plus-jakarta-sans@0.4.2", "", {}, "sha512-6LYVmVGwjQvH+uzzWlVc9+oMj4lkNQ41aymVDjO+x8aFk8kCye20wOyLomYMZaMezA++Uf1mZRCw3W3Fy/hxEA=="], + "@expo/cli": ["@expo/cli@54.0.23", "", { "dependencies": { "@0no-co/graphql.web": "^1.0.8", "@expo/code-signing-certificates": "^0.0.6", "@expo/config": "~12.0.13", "@expo/config-plugins": "~54.0.4", "@expo/devcert": "^1.2.1", "@expo/env": "~2.0.8", "@expo/image-utils": "^0.8.8", "@expo/json-file": "^10.0.8", "@expo/metro": "~54.2.0", "@expo/metro-config": "~54.0.14", "@expo/osascript": "^2.3.8", "@expo/package-manager": "^1.9.10", "@expo/plist": "^0.4.8", "@expo/prebuild-config": "^54.0.8", "@expo/schema-utils": "^0.1.8", "@expo/spawn-async": "^1.7.2", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.3.0", "@react-native/dev-middleware": "0.81.5", "@urql/core": "^5.0.6", "@urql/exchange-retry": "^1.3.0", "accepts": "^1.3.8", "arg": "^5.0.2", "better-opn": "~3.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "env-editor": "^0.4.1", "expo-server": "^1.0.5", "freeport-async": "^2.0.0", "getenv": "^2.0.0", "glob": "^13.0.0", "lan-network": "^0.1.6", "minimatch": "^9.0.0", "node-forge": "^1.3.3", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^3.0.1", "pretty-bytes": "^5.6.0", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "qrcode-terminal": "0.11.0", "require-from-string": "^2.0.2", "requireg": "^0.2.2", "resolve": "^1.22.2", "resolve-from": "^5.0.0", "resolve.exports": "^2.0.3", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "source-map-support": "~0.5.21", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "tar": "^7.5.2", "terminal-link": "^2.1.1", "undici": "^6.18.2", "wrap-ansi": "^7.0.0", "ws": "^8.12.1" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "build/bin/cli" } }, "sha512-km0h72SFfQCmVycH/JtPFTVy69w6Lx1cHNDmfLfQqgKFYeeHTjx7LVDP4POHCtNxFP2UeRazrygJhlh4zz498g=="], "@expo/code-signing-certificates": ["@expo/code-signing-certificates@0.0.6", "", { "dependencies": { "node-forge": "^1.3.3" } }, "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w=="], @@ -1265,6 +1266,8 @@ "expo-asset": ["expo-asset@12.0.12", "", { "dependencies": { "@expo/image-utils": "^0.8.8", "expo-constants": "~18.0.12" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-CsXFCQbx2fElSMn0lyTdRIyKlSXOal6ilLJd+yeZ6xaC7I9AICQgscY5nj0QcwgA+KYYCCEQEBndMsmj7drOWQ=="], + "expo-clipboard": ["expo-clipboard@8.0.8", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-VKoBkHIpZZDJTB0jRO4/PZskHdMNOEz3P/41tmM6fDuODMpqhvyWK053X0ebspkxiawJX9lX33JXHBCvVsTTOA=="], + "expo-constants": ["expo-constants@18.0.13", "", { "dependencies": { "@expo/config": "~12.0.13", "@expo/env": "~2.0.8" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-FnZn12E1dRYKDHlAdIyNFhBurKTS3F9CrfrBDJI5m3D7U17KBHMQ6JEfYlSj7LG7t+Ulr+IKaj58L1k5gBwTcQ=="], "expo-file-system": ["expo-file-system@19.0.21", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-s3DlrDdiscBHtab/6W1osrjGL+C2bvoInPJD7sOwmxfJ5Woynv2oc+Fz1/xVXaE/V7HE/+xrHC/H45tu6lZzzg=="], diff --git a/frontend/apps/mobile/components/OrgCard.tsx b/frontend/apps/mobile/components/OrgCard.tsx index ad2ff71b..b3b52b42 100644 --- a/frontend/apps/mobile/components/OrgCard.tsx +++ b/frontend/apps/mobile/components/OrgCard.tsx @@ -57,7 +57,7 @@ export function OrgCard({ pin, distance }: OrgCardProps) { {pin.image ? ( ) : ( diff --git a/frontend/apps/mobile/components/OrgMapCard.tsx b/frontend/apps/mobile/components/OrgMapCard.tsx index d676e1f2..1279314c 100644 --- a/frontend/apps/mobile/components/OrgMapCard.tsx +++ b/frontend/apps/mobile/components/OrgMapCard.tsx @@ -81,7 +81,7 @@ export function OrgMapCard({ pin, userLocation }: OrgMapCardProps) { {pin.image ? ( ) : ( From 2e716b519166d8e9b0c328b625314d2f40bddf0f Mon Sep 17 00:00:00 2001 From: vdema Date: Fri, 17 Apr 2026 13:51:34 -0400 Subject: [PATCH 3/3] Fixed issue --- frontend/apps/mobile/components/OrgMapCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/apps/mobile/components/OrgMapCard.tsx b/frontend/apps/mobile/components/OrgMapCard.tsx index 1279314c..1a458c7d 100644 --- a/frontend/apps/mobile/components/OrgMapCard.tsx +++ b/frontend/apps/mobile/components/OrgMapCard.tsx @@ -81,7 +81,7 @@ export function OrgMapCard({ pin, userLocation }: OrgMapCardProps) { {pin.image ? ( ) : (