From 742d8f6bcc7709ebe2543940ffb14324f21d7a24 Mon Sep 17 00:00:00 2001 From: Tran Anh Tuan Date: Wed, 19 Nov 2025 14:23:17 +0700 Subject: [PATCH] remove gluestackk-ui --- MODAL_USAGE.md | 409 +++++++++++++ README.md | 32 + app.json | 8 +- app/_layout.tsx | 71 ++- app/auth/login.tsx | 308 +++++----- components/map/SosButton.tsx | 366 ++++------- .../alert-dialog/index.tsx | 296 --------- .../ui/gluestack-ui-provider/button/index.tsx | 434 ------------- .../gluestack-ui-provider/config.ts | 309 ---------- .../gluestack-ui-provider/index.next15.tsx | 87 --- .../gluestack-ui-provider/index.tsx | 38 -- .../gluestack-ui-provider/index.web.tsx | 96 --- .../gluestack-ui-provider/script.ts | 19 - .../ui/gluestack-ui-provider/modal/index.tsx | 276 --------- .../gluestack-ui-provider/popover/index.tsx | 345 ----------- .../gluestack-ui-provider/tooltip/index.tsx | 131 ---- components/ui/modal.tsx | 578 ++++++++++++++++++ hooks/use-theme-context.tsx | 232 +++---- package-lock.json | 50 +- package.json | 2 - 20 files changed, 1463 insertions(+), 2624 deletions(-) create mode 100644 MODAL_USAGE.md delete mode 100644 components/ui/gluestack-ui-provider/alert-dialog/index.tsx delete mode 100644 components/ui/gluestack-ui-provider/button/index.tsx delete mode 100644 components/ui/gluestack-ui-provider/gluestack-ui-provider/config.ts delete mode 100644 components/ui/gluestack-ui-provider/gluestack-ui-provider/index.next15.tsx delete mode 100644 components/ui/gluestack-ui-provider/gluestack-ui-provider/index.tsx delete mode 100644 components/ui/gluestack-ui-provider/gluestack-ui-provider/index.web.tsx delete mode 100644 components/ui/gluestack-ui-provider/gluestack-ui-provider/script.ts delete mode 100644 components/ui/gluestack-ui-provider/modal/index.tsx delete mode 100644 components/ui/gluestack-ui-provider/popover/index.tsx delete mode 100644 components/ui/gluestack-ui-provider/tooltip/index.tsx create mode 100644 components/ui/modal.tsx diff --git a/MODAL_USAGE.md b/MODAL_USAGE.md new file mode 100644 index 0000000..071d9b4 --- /dev/null +++ b/MODAL_USAGE.md @@ -0,0 +1,409 @@ +# Modal Component + +Modal component tương tự như Modal của Ant Design, được tạo cho React Native/Expo. + +## Cài đặt + +Component này sử dụng `@expo/vector-icons` cho các icon. Đảm bảo bạn đã cài đặt: + +```bash +npx expo install @expo/vector-icons +``` + +## Import + +```tsx +import Modal from "@/components/ui/modal"; +``` + +## Các tính năng chính + +### 1. Basic Modal + +```tsx +import React, { useState } from "react"; +import { View, Text, Button } from "react-native"; +import Modal from "@/components/ui/modal"; + +export default function BasicExample() { + const [open, setOpen] = useState(false); + + return ( + + + {sosData?.active ? t("home.sos.active") : t("home.sos.inactive")} + { + open={showConfirmSosDialog} + onCancel={() => { setShowConfirmSosDialog(false); setSelectedSosMessage(null); setCustomMessage(""); setErrors({}); }} + okText={t("home.sos.confirm")} + cancelText={t("home.sos.cancel")} + title={t("home.sos.title")} + centered + onOk={handleConfirmSos} > - - - - - {t("home.sos.title")} - - - - - {/* Dropdown Nội dung SOS */} - - {t("home.sos.content")} - setShowDropdown(!showDropdown)} - > - - {selectedSosMessage !== null - ? sosOptions.find((opt) => opt.ma === selectedSosMessage) - ?.moTa || t("home.sos.selectReason") - : t("home.sos.selectReason")} - - - - {errors.sosMessage && ( - {errors.sosMessage} - )} - + {/* Select Nội dung SOS */} + + {t("home.sos.content")} - {/* Input Custom Message nếu chọn "Khác" */} - {selectedSosMessage === 999 && ( - - {t("home.sos.statusInput")} - { - setCustomMessage(text); - if (text.trim() !== "") { - setErrors((prev) => { - const newErrors = { ...prev }; - delete newErrors.customMessage; - return newErrors; - }); - } - }} - multiline - numberOfLines={4} - /> - {errors.customMessage && ( - {errors.customMessage} - )} - - )} - - - - -