+
-# NCU App +# NCU-APP -An App to provide easier life at National Central University. +NCU-APP 是為國立中央大學(NCU)學生所打造的應用程式,旨在透過現代化且使用者友善的介面來簡化他們的校園體驗。 -# :file_folder: Prerequisites +## 使用技術 -Please follow the requirements in [Expo Doc](https://docs.expo.dev/get-started/installation/#requirements). +- **React**:用於構建使用者界面的 JavaScript 函式庫,使用它來創建動態和響應式的元件。 +- **TypeScript**:JavaScript 的型別增強版,有助於在開發過程中提前發現錯誤,並使程式碼更容易理解。 +- **Vite**:快速的編譯工具,可提供即時回饋,從而改善開發過程。 +- **Vite PWA**: 漸進式網路應用程式 (Progressive Web Apps)的套件,協助將專案與行動裝置相容。 +- **TanStack Router**:路由函式庫,可輕鬆在應用程式的不同頁面之間進行導航。 +- **Tailwind CSS**:CSS 框架,可在不需撰寫大量自定義 CSS 的情況下構建自定義設計。 +- **Supabase**:開源的後端服務,提供驗證、資料庫和 API 功能,類似於 Firebase,但更具可定制性。 +- **Playwright**:End-to-End 的自動測試框架,用於維護程式品值。 -# :rocket: Getting Started +## 專案結構 +- `src/`:主要的資料夾,包含所有的原始碼。 + - `components/`:可重複使用的 UI 元件,如按鈕、表單等。 + - `routes/`:包含處理頁面導航的檔案。每個頁面都有自己的路由檔案。 + - `utils/`:工具函式和可重複使用的型別,幫助減少程式碼重複。 +- `public/`:靜態檔案,如圖片和圖示,這些檔案在運行時不會改變。 +- `supabase/`:包含與 Supabase 相關的配置和與後端服務交互的函式。 +- `tests/`:Playwright 的測試腳本。 + +## 開始上手 + +按照以下步驟在你的電腦上設置專案: + +1. **複製程式碼**: + ```bash + git clone https://github.com/NCUAppTeam/NCU-App.git + ``` +2. **進入專案**: + ```bash + cd NCU-App + ``` +3. **安裝依賴套件**: + ```bash + npm install + ``` +4. **啟動開發伺服器**: + ```bash + npm run dev + ``` + 執行此命令後,打開瀏覽器並前往顯示的 URL 來查看應用程式運行情況。 + +### 前置準備 + +在開始之前,請確保你的電腦已安裝 Node.js 和 npm。如果你還未安裝這些工具,可以從[這裡](https://nodejs.org/)下載。 + +## 路由管理 + +本專案使用 **TanStack Router** 來管理不同頁面之間的導航。應用程式中的每個頁面或視圖都有自己的檔案,位於 `src/routes/` 資料夾中,這樣可以更輕鬆地管理和擴展應用。 + +## 元件 + +可重複使用的元件存放於 `src/components/` 資料夾中。每個元件通常是 UI 的一小部分,例如按鈕、標題或表單,這些元件可以在應用的不同部分中重複使用。 + +如果你在添加新功能或修改 UI,請考慮是否應該創建一個新元件,以保持程式碼的模組化和可維護性。 + +## 樣式 + +我們使用 **Tailwind CSS** 來為應用程式進行樣式設計。與其撰寫自定義 CSS,Tailwind 提供的實用工具類別可以直接在 JSX 中應用,這樣可以保持樣式的一致性,並減少撰寫 CSS 檔案的需求。 + +Tailwind 的配置檔位於 `tailwind.config.js`。 + +## 後端 + +**Supabase** 作為後端,用於處理用戶驗證、即時資料庫和 API 請求。所有與後端相關的配置和邏輯都存放在 `supabase/` 資料夾中。 + +### 環境配置 + +要與 Supabase 資料庫互動,你需要設置 `.env.local` 檔案,並填入以下變數: + +``` +SUPABASE_URL=your-supabase-url +SUPABASE_ANON_KEY=your-supabase-key ``` -# Install the dependency packages -yarn install -# Start the development server. -yarn start +### Edge Functions + +Supabase 提供 **Edge Functions**,這些是基於 [Deno](https://deno.land/) 構建的雲端函式,可以用來執行不方便在使用者的裝置上跑的程式碼。 + +### Local Development + +如果你想修改資料庫欄位,請在本地端先進行開發測試,新增 migration 後再提 PR 請求更動正式伺服器。 +請參考 Supabase 官方文件的 [Database Migration](https://supabase.com/docs/guides/cli/local-development#database-migrations) 部分 + +## 開發 + +我們使用 **ESLint** 來維護程式碼品質,並使用 **TypeScript** 進行型別檢查。這有助於提前發現錯誤,並使程式碼更容易理解。 + +你可以用以下命令運行這些檢查: + +- **程式碼檢查**: + ```bash + npm run lint + ``` +- **構建專案**: + ```bash + npm run build + ``` + +執行這些命令可以確保程式碼遵循規定,並且沒有型別錯誤。 + +## 測試 + +本專案使用 Playwright 進行端到端測試。Playwright 允許我們編寫和運行模擬不同瀏覽器中用戶操作的測試。 + +### 執行測試 + +要執行測試,請使用以下命令: + +```bash +npm run test ``` + +這將執行 `tests` 資料夾中定義的所有測試。 + +### 測試結構 + +我們的測試位於 `tests` 資料夾中。每個測試檔案通常專注於應用程式的一個特定功能或元件。 + +想了解如何使用 Playwright 編寫測試,請參閱 [Playwright 文檔](https://playwright.dev/docs/intro)。 + +## 部署 + +本專案配置了 **GitHub Actions** 來進行持續整合(CI)。每次你將程式碼推送到 Github 時,GitHub 都會自動運行測試和程式碼檢查,確保程式碼品質。你不需要自己設置 CI,但了解這個過程有助於維護專案的質量。 + +## 貢獻 + +我們歡迎所有人的貢獻,無論你是否是新手開發者!如果你想貢獻,請按照以下步驟: + +1. **Fork Repository**:在你的 GitHub 帳號下創建一份這個 repo 的副本。 +2. **進行修改**:撰寫乾淨、結構良好的程式碼,並在必要時添加註釋。 +3. **測試修改**:在提交之前,測試你的程式碼,確保它能正常運行。 +4. **提交拉取請求**:完成後,推送你的更改並提交 PR。我們的團隊會進行審查,並在審核通過後將其合併到主程式碼庫中。 + +請確保你: + +- 遵循專案現有的程式碼風格。 +- 撰寫清晰的提交訊息,解釋你的更改。 +- 如果你添加了新功能,請包含相應的測試。 + +如果你有任何問題或需要幫助,歡迎在我們的 Discord 伺服器中詢問。 diff --git a/app.json b/app.json deleted file mode 100644 index 12ad39c..0000000 --- a/app.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "expo": { - "name": "NCU-APP-v2", - "slug": "NCU-APP-v2", - "version": "1.0.0", - "orientation": "portrait", - "icon": "./assets/icon.png", - "userInterfaceStyle": "light", - "splash": { - "image": "./assets/splash.png", - "resizeMode": "contain", - "backgroundColor": "#ffffff" - }, - "assetBundlePatterns": [ - "**/*" - ], - "ios": { - "supportsTablet": true - }, - "android": { - "adaptiveIcon": { - "foregroundImage": "./assets/adaptive-icon.png", - "backgroundColor": "#ffffff" - } - }, - "web": { - "favicon": "./assets/favicon.png" - } - } -} diff --git a/assets/MapIcon/badminton.png b/assets/MapIcon/badminton.png deleted file mode 100644 index 2c3331d..0000000 Binary files a/assets/MapIcon/badminton.png and /dev/null differ diff --git a/assets/MapIcon/building.png b/assets/MapIcon/building.png deleted file mode 100644 index 7454cbf..0000000 Binary files a/assets/MapIcon/building.png and /dev/null differ diff --git a/assets/MapIcon/bus.png b/assets/MapIcon/bus.png deleted file mode 100644 index d1a352e..0000000 Binary files a/assets/MapIcon/bus.png and /dev/null differ diff --git a/assets/MapIcon/restaurant.png b/assets/MapIcon/restaurant.png deleted file mode 100644 index bdd58e2..0000000 Binary files a/assets/MapIcon/restaurant.png and /dev/null differ diff --git a/assets/MapIcon/volleyball.png b/assets/MapIcon/volleyball.png deleted file mode 100644 index a7f5918..0000000 Binary files a/assets/MapIcon/volleyball.png and /dev/null differ diff --git a/assets/Sales/TagBackground.png b/assets/Sales/TagBackground.png deleted file mode 100644 index 087b20d..0000000 Binary files a/assets/Sales/TagBackground.png and /dev/null differ diff --git a/assets/adaptive-icon.png b/assets/adaptive-icon.png deleted file mode 100644 index beaeda8..0000000 Binary files a/assets/adaptive-icon.png and /dev/null differ diff --git a/assets/building.json b/assets/building.json deleted file mode 100644 index c0184ad..0000000 --- a/assets/building.json +++ /dev/null @@ -1,514 +0,0 @@ -[ - { - "latitude":24.97025, - "image":"building", - "chineseName":"I 志希館", - "longitude":121.19367, - "units": "電子計算機中心, 管理學院研究室", - "index": 0 - }, - { - "longitude":121.19078, - "chineseName":"松苑餐廳", - "image":"restaurant", - "latitude":24.96703, - "units": "漢堡王, 全家, 江記餛飩, 露易莎, lala kitchen, 都挺好", - "index": 1 - }, - { - "latitude":24.96609, - "chineseName":"國際學生宿舍", - "image":"building", - "longitude":121.19465, - "units": " ", - "index": 2 - }, - { - "chineseName":"籃球場", - "longitude":121.19069, - "image": "basketball", - "latitude":24.96967, - "units": " ", - "index": 3 - }, - { - "chineseName":"女十四舍", - "latitude":24.96571, - "longitude":121.19431, - "image":"building", - "units": "藝文空間, 拉亞漢堡, 龍騰影印店, 581生活館, 全家無人商店", - "index": 4 - }, - { - "image":"building", - "latitude":24.96561, - "chineseName":"男十一舍", - "longitude":121.19511, - "units": "敦煌書局, 中大眼鏡行, 印象剪髮, 郵局, 洗衣店", - "index": 5 - }, - { - "longitude":121.19519, - "image":"building", - "latitude":24.9695, - "chineseName":"LS 人文社會科學大樓", - "units": "文三, 文學三館, 黑盒子劇場, 藝文中心, 107電影院", - "index": 6 - }, - { - "latitude":24.969364, - "image":"building", - "chineseName":"校長宿舍", - "longitude":121.195814, - "units": " ", - "index": 7 - }, - { - "image":"building", - "chineseName":"O 綜教館", - "latitude":24.97024, - "longitude":121.19292, - "units": "語言中心", - "index": 8 - }, - { - "chineseName":"中正圖書館", - "latitude":24.96821, - "image":"building", - "longitude":121.19368, - "units": "K書中心, 生活輔導組, 課外活動組, 服務學習辦公室, 軍訓室, 衛生保健組, 圖書館視聽室, 原住民族學生資源中心, 諮商中心, 資源教室, 藝文中心展示空間, 職涯發展中心, 小中大電視台, 備用書庫, 英語自學中心, 戲曲研究室, 團體活動室, 學務處", - "index": 9 - }, - { - "longitude":121.18774915643395, - "image":"building", - "chineseName":"前瞻科技研究中心", - "latitude":24.966554536362217, - "units": " ", - "index": 10 - }, - { - "longitude":121.1935, - "chineseName":"小木屋鬆餅", - "image":"restaurant", - "latitude":24.9701, - "units": " ", - "index": 11 - }, - { - "latitude":24.96562, - "longitude":121.19555, - "image":"building", - "chineseName":"男七舍", - "units": " ", - "index": 12 - }, - { - "chineseName":"溜冰場", - "image":"running", - "longitude":121.19097, - "latitude":24.96958, - "units": "skating", - "index": 13 - }, - { - "chineseName":"住宿服務處", - "latitude":24.96618, - "image":"building", - "longitude":121.19446, - "units": " ", - "index": 14 - }, - { - "chineseName":"YH 依仁堂", - "latitude":24.96837, - "image":"building", - "longitude":121.19091, - "units": "室內籃球場, 室內排球場, 健身房, 韻律教室, 桌球練習場, 技擊教室", - "index": 15 - }, - { - "chineseName":"志道樓", - "image":"building", - "latitude":24.96566, - "longitude":121.19381, - "units": " ", - "index": 16 - }, - { - "longitude":121.19448436732834, - "latitude":24.970117061463334, - "image":"building", - "chineseName":"國鼎圖書館", - "units": "白樓特藏室, 國鼎館展示室, 簡報室, 閱覽室", - "index": 17 - }, - { - "longitude":121.19209, - "chineseName":"S4 健雄館", - "latitude":24.97144, - "image":"building", - "units": "科四, 科學四館, 物理系, 奈米科技研究中心, 探測器研發中心, 複雜系統研究中心, 中子束應用研究中心, 數學與理論物理中心, 中壢福衛地面站, 天文研究所, 太空科學研究所", - "index": 18 - }, - { - "chineseName":"大講堂", - "longitude":121.19571, - "image":"building", - "latitude":24.96718, - "units": "校史館", - "index": 19 - }, - { - "latitude":24.97061, - "chineseName":"研究生宿舍", - "image":"building", - "longitude":121.19435, - "units": " ", - "index": 20 - }, - { - "latitude":24.96724, - "chineseName":"E 工程一館", - "image":"building", - "longitude":121.19269, - "units": "土木工程學系, 化學工程與材料工程學系, 化材, 奈米觸媒研究中心, 界面科技研究中心 , 土木材料品保中心, 災害防治研究中心, 橋梁工程研究中心", - "index": 21 - }, - { - "chineseName":"A 文學一館", - "latitude":24.96946, - "longitude":121.19458, - "image":"building", - "units": "中國文學系, 英美語文學系, 法國語文學系, 哲學研究所, 歷史研究所, 藝術學研究所, 學習與教學研究及亞祭文化研究國際碩士學位學程所", - "index": 22 - }, - { - "chineseName":"E5 大型力學實驗室", - "latitude":24.968898292544104, - "longitude":121.18847797691994, - "image":"building", - "units": "結構力學實驗室, 韓鋼架及混凝土力學實驗區, 大地工程實驗室, 流體力學實驗室", - "index": 23 - }, - { - "latitude":24.9672, - "chineseName":"S 科學一館", - "longitude":121.19465, - "image":"building", - "units": "地球科學系, 地球物理研究所, 水文與海洋科學研究所, 地震電磁前兆研究中心, 應用地質研究所, 環境研究中心, 中大天文台, 秉文堂", - "index": 24 - }, - { - "image":"building", - "latitude":24.96604511545328, - "longitude":121.19190498514823, - "chineseName":"中大幼稚園", - "units": " ", - "index": 25 - }, - { - "chineseName":"中央大學第九宿舍餐廳", - "latitude":24.97054, - "longitude":121.19569, - "image":"restaurant", - "units": "全家, 四海遊龍, 金盃美而美早餐, 賈董的麵, 香米自助餐, 第九餐廳", - "index": 26 - }, - { - "latitude":24.96559, - "longitude":121.19343, - "chineseName":"男三舍", - "image":"building", - "units": " ", - "index": 27 - }, - { - "chineseName":"攀岩場", - "longitude":121.18941, - "image": "rockclimbing", - "latitude":24.96901, - "units": " ", - "index": 28 - }, - { - "chineseName":"中大iicafe", - "latitude":24.97064, - "image":"restaurant", - "longitude":121.19441, - "units": " ", - "index": 29 - }, - { - "image":"building", - "longitude":121.19548, - "chineseName":"男九舍", - "latitude":24.97025, - "units": "自修室", - "index": 30 - }, - { - "chineseName":"據德樓", - "image":"building", - "longitude":121.19583, - "latitude":24.96671, - "units": "社團辦公室", - "index": 31 - }, - { - "longitude":121.19495, - "latitude":24.97084, - "image":"building", - "chineseName":"中大會館", - "units": " ", - "index": 32 - }, - { - "latitude":24.96594, - "image":"building", - "chineseName":"男六舍", - "longitude":121.1958, - "units": " ", - "index": 33 - }, - { - "longitude":121.193, - "latitude":24.96899, - "chineseName":"壘球場", - "image": " ", - "units": "棒壘球場", - "index": 34 - }, - { - "chineseName":"國際處&創新育成中心", - "longitude":121.19087, - "latitude":24.96672, - "image":"building", - "units": " ", - "index": 35 - }, - { - "chineseName":"HK 客家學院大樓", - "image":"building", - "longitude":121.19037, - "latitude":24.97102, - "units": "客家與社會學系, 客家社會文化研究所, 客家語文研究所, 客家政治經濟研究所, 客家研究在職專班, 法律與政府研究所, 客語認證中心, 客家公共事務中心, 客家希望工程言青年培育中心, 全球客家女性研究(基金)中心, 客家藝文中心", - "index": 36 - }, - { - "image":"building", - "longitude":121.18767, - "latitude":24.96861, - "chineseName":"E3 工程四館", - "units": "環境工程學研究所, 永續環境科技研究中心, 化學工程與材料工程學系實驗館", - "index": 37 - }, - { - "longitude":121.19269, - "image":"building", - "latitude":24.97162, - "chineseName":"S5 科學五館", - "units": "腦科學研究中心, 生物醫藥研發中心, 認知與神經科學所, 系統生物與生物資訊研究所, 生命科學系", - "index": 38 - }, - { - "image":"building", - "chineseName":"總圖書館", - "longitude":121.19443, - "latitude":24.96839, - "units": "英語閱讀坊, 台聯大圖書管理系統", - "index": 39 - }, - { - "chineseName":"男十二舍", - "longitude":121.194957, - "latitude":24.971215, - "image":"building", - "units": " ", - "index": 40 - }, - { - "image": "badminton", - "latitude":24.96935, - "chineseName":"羽球館", - "longitude":121.1909, - "units": " ", - "index": 41 - }, - { - "latitude":24.96793, - "image":"building", - "longitude":121.18709, - "chineseName":"R3 研究中心大樓二期", - "units": "生醫理工學院", - "index": 42 - }, - { - "longitude":121.19522, - "chineseName":"行政大樓", - "image":"building", - "latitude":24.96825, - "units": "教務處, 總務處, 註冊組, 課務組, 招生組, 文書組, 出納組, 保管組, 事務組", - "index": 43 - }, - { - "longitude":121.19234, - "image":"building", - "latitude":24.96828, - "chineseName":"TR 教學研究綜合大樓暨大禮堂", - "units": "世界奇觀, 大禮堂, 多功能會議廳, 教學研究空間, 停車場", - "index": 44 - }, - { - "chineseName":"C2 文學二館", - "longitude":121.19453, - "latitude":24.96898, - "image":"building", - "units": "中國文學系, 英美語文學系, 法國語文學系, 哲學研究所, 歷史研究所, 藝術學研究所, 學習與教學研究及亞祭文化研究國際碩士學位學程所", - "index": 45 - }, - { - "chineseName":"S2 科學三館", - "latitude":24.97088, - "longitude":121.19242, - "image":"building", - "units": "物化實驗室, 有機無機實驗室, 核磁共振儀室, 普化分析實驗室, 大氣分析實驗室, 光子材料研究實驗室, 高分子及觸媒化學實驗室, 有機化學研究實驗室, 有機光電材料開發化學實驗室, 有機化學研究實驗室, 有機光電材料開發實驗室", - "index": 46 - }, - { - "latitude":24.9678, - "chineseName":"E2 工程三館", - "image":"building", - "longitude":121.18858, - "units": "機械工程學系, 機械系, 能源研究中心, 生物醫學工程研究所, 能源工程研究所, 光機電工程研究所", - "index": 47 - }, - { - "chineseName":"E1 工程二館", - "image":"building", - "latitude":24.96788, - "longitude":121.19153, - "units": "電機工程學系, 通訊工程學系, 電機系, 通訊系, 小禮堂, 視聽教室, 通訊工程研究所, 資訊電機學院", - "index": 48 - }, - { - "latitude":24.966, - "chineseName":"男五舍", - "image":"building", - "longitude":121.1953, - "units": " ", - "index": 49 - }, - { - "longitude":121.19584, - "latitude":24.96635, - "image":"building", - "chineseName":"游藝館", - "units": "社團辦公室", - "index": 50 - }, - { - "longitude":121.19542, - "latitude":24.96556, - "chineseName":"松果餐廳", - "image":"restaurant", - "units": "全家, 吮指王炸雞, 豪秋吐司, 香米自助餐", - "index": 51 - }, - { - "image":"building", - "longitude":121.19048, - "chineseName":"IL 國鼎光電大樓", - "latitude":24.97036, - "units": "光電系, 鍍膜實驗室, 光電博物館, 光電展示中心, 台達研究中心", - "index": 52 - }, - { - "latitude":24.96835, - "chineseName":"操場", - "longitude":121.18991, - "image": "running", - "units": " ", - "index": 53 - }, - { - "latitude":24.96631, - "image":"building", - "longitude":121.19262, - "chineseName":"女一~四舍", - "units": " ", - "index": 54 - }, - { - "chineseName":"E6 工程五館", - "longitude":121.18777, - "image":"building", - "latitude":24.96734, - "units": "資訊工程學系, 資工系, 資訊工程研究所, 工學院, 工學院精密研究中心, 環境與能源研究中心, 材料科學與工程研究所, 網路學習科技研究所", - "index": 55 - }, - { - "latitude":24.97105, - "longitude":121.19372, - "image":"building", - "chineseName":"I1 管理二館", - "units": "管二, 企管, 資管, 財金, 經濟, 企業管理學系, 資訊管理學系, 財務金融學系, 經濟學系, 產驗經濟研究所, 人力資源管理研究所, 工業管理研究所, 會計研究所及管理學術研究中心, 企業資源規劃中心, 管院電算中心", - "index": 56 - }, - { - "latitude":24.97013, - "image":"building", - "chineseName":"S1 科學二館", - "longitude":121.19262, - "units": "理學院辦公室, 光電中心辦公室, 地科中心辦公室, 新世代太陽能電池研究中心辦公室, 固態無機化學實驗室, 功能高分子及觸媒實驗室, 奈米觸媒與高能電池實驗室, 化學系系學會, 分子光譜學實驗室, 化學系辦公室, 教授研究室, 大氣系辦公室", - "index": 57 - }, - { - "longitude":121.18709, - "latitude":24.96793, - "image":"building", - "chineseName":"R2 太空及遙測研究中心", - "units": "太遙中心", - "index": 58 - }, - { - "longitude":121.18993, - "latitude":24.96957, - "image": "tennis", - "chineseName":"網球場", - "units": " ", - "index": 59 - }, - { - "longitude":121.18961, - "chineseName":"室內游泳池", - "image":"building", - "latitude":24.9701, - "units": " ", - "index": 60 - }, - { - "image":"building", - "chineseName":"男十三舍", - "longitude":121.19623, - "latitude":24.96663, - "units": " ", - "index": 61 - }, - { - "longitude":121.19268, - "chineseName":"M 鴻經館", - "latitude":24.97085, - "image":"building", - "units": "數學系, 數學系圖書館, 數學系系學會, 數學系系辦公室", - "index": 62 - }, - { - "longitude":121.19079, - "chineseName":"排球場", - "image": "volleyball", - "latitude":24.9676, - "units": " ", - "index": 63 - } - ] \ No newline at end of file diff --git a/assets/splash.png b/assets/splash.png deleted file mode 100644 index 9254c62..0000000 Binary files a/assets/splash.png and /dev/null differ diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 73ebf58..0000000 --- a/babel.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = function (api) { - api.cache(true); - return { - presets: ["babel-preset-expo"], - }; -}; diff --git a/components/DateTimeField.jsx b/components/DateTimeField.jsx deleted file mode 100644 index 9ccdd6e..0000000 --- a/components/DateTimeField.jsx +++ /dev/null @@ -1,51 +0,0 @@ -import React, { useState } from 'react'; -import { View } from 'react-native'; -import DateTimePickerModal from 'react-native-modal-datetime-picker'; -import { TextInput } from 'react-native-paper'; - -function DateTimeField({ - label, value, inputStyle, onChange, -}) { - const [visible, setVisible] = useState(false); - const [focused, setFocused] = useState(false); - const [date, setDate] = useState(new Date()); - const [text, setText] = useState(value ? value.toLocaleString() : ''); - - const showDialog = () => { - if (!focused) { - setFocused(true); - setVisible(true); - } else { - setFocused(false); - } - }; - - const hideDialog = () => setVisible(false); - - const handleConfirm = (newVal) => { - setDate(newVal); - setText(newVal.toLocaleString()); - hideDialog(); - onChange(newVal); - }; - - return ( -
開始時間
+ +結束時間
+ +活動地點
+ +參加費用
+ +活動介紹
+ +