diff --git a/.gitignore b/.gitignore
index f558d75..89ee7aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,17 +1,24 @@
.DS_Store
+**/.DS_Store
# Node / frontend
node_modules/
+**/node_modules/
dist/
+**/dist/
.vite/
coverage/
+apps/desktop/node_modules/
+apps/desktop/dist/
# Rust / Cargo
target/
+**/target/
# Tauri generated outputs
apps/desktop/src-tauri/target/
apps/desktop/src-tauri/gen/schemas/
+apps/desktop/src-tauri/gen/
# Environment / local settings
.env
diff --git a/apps/desktop/eslint.config.js b/apps/desktop/eslint.config.js
index 5e6b472..2cfb9b2 100644
--- a/apps/desktop/eslint.config.js
+++ b/apps/desktop/eslint.config.js
@@ -6,7 +6,12 @@ import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'
export default defineConfig([
- globalIgnores(['dist']),
+ globalIgnores([
+ 'dist',
+ 'node_modules',
+ 'src-tauri/target',
+ 'src-tauri/gen',
+ ]),
{
files: ['**/*.{ts,tsx}'],
extends: [
@@ -20,4 +25,10 @@ export default defineConfig([
globals: globals.browser,
},
},
+ {
+ files: ['src/main.tsx'],
+ rules: {
+ 'react-refresh/only-export-components': 'off',
+ },
+ },
])
diff --git a/apps/desktop/src/app/App.tsx b/apps/desktop/src/app/App.tsx
index baf59d5..9dc7042 100644
--- a/apps/desktop/src/app/App.tsx
+++ b/apps/desktop/src/app/App.tsx
@@ -29,6 +29,11 @@ export default function App() {
const m = useAppModel();
const { t } = useContext(LocaleContext);
+ // (role: schedule view week start (Monday), type: string (YYYY-MM-DD))
+ const scheduleWeekStartYmd = useMemo(() => {
+ return toYmd(startOfWeekMonday(m.today));
+ }, [m.today]);
+
if (!m.hydrated) {
return (
@@ -37,11 +42,6 @@ export default function App() {
);
}
- // (role: schedule view week start (Monday), type: string (YYYY-MM-DD))
- const scheduleWeekStartYmd = useMemo(() => {
- return toYmd(startOfWeekMonday(m.today));
- }, [m.today]);
-
return (
diff --git a/apps/desktop/src/features/task/components/TaskForm.tsx b/apps/desktop/src/features/task/components/TaskForm.tsx
index af04a9e..2b3ddbf 100644
--- a/apps/desktop/src/features/task/components/TaskForm.tsx
+++ b/apps/desktop/src/features/task/components/TaskForm.tsx
@@ -1,5 +1,5 @@
import { useContext, useMemo } from 'react';
-import { useForm } from 'react-hook-form';
+import { useForm, useWatch } from 'react-hook-form';
import { z } from 'zod';
import { zodResolver } from '@hookform/resolvers/zod';
@@ -119,9 +119,9 @@ export function TaskForm({ onCreate }: TaskFormProps) {
);
const {
+ control,
register,
handleSubmit,
- watch,
setValue,
reset,
formState: { errors, isSubmitting, isValid },
@@ -139,8 +139,8 @@ export function TaskForm({ onCreate }: TaskFormProps) {
mode: 'onChange',
});
- const category = watch('category');
- const customDays = watch('customDays') ?? [];
+ const category = useWatch({ control, name: 'category' });
+ const customDays = useWatch({ control, name: 'customDays' }) ?? [];
const canSubmit = useMemo(() => {
if (!isValid) return false;
diff --git a/apps/server/Cargo.lock b/apps/server/Cargo.lock
new file mode 100644
index 0000000..f1b1e97
--- /dev/null
+++ b/apps/server/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "server"
+version = "0.1.0"
diff --git a/crates/frilday-core/Cargo.lock b/crates/frilday-core/Cargo.lock
new file mode 100644
index 0000000..a6e2273
--- /dev/null
+++ b/crates/frilday-core/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "frilday-core"
+version = "0.1.0"