gitshark

Clone repository

git clone https://git.vilip.de/git/vilip/taskflow.git
git clone git@git.vilip.de:vilip/taskflow.git

← Commits

🚧 Work in progress

ae3b5b59a2ebb16589cd896b186760583aa747ab · vvilip · 2025-11-17T12:31:55Z

Changes

16 files changed, +46 -41

MODIFY .gitignore +2 -0
diff --git a/.gitignore b/.gitignore
index 1b538b6..1608682 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,3 +44,5 @@
44 44 # generated native folders
45 45 /ios
46 46 /android
47 +
48 +.idea/
MODIFY app.json +4 -4
diff --git a/app.json b/app.json
index 95a4c9c..b4bba80 100644
--- a/app.json
+++ b/app.json
@@ -4,7 +4,7 @@
4 4 "slug": "taskflow",
5 5 "version": "1.0.0",
6 6 "orientation": "portrait",
7 - "icon": "./assets/images/Logo.png",
7 + "icon": "./assets/images/Icon.png",
8 8 "scheme": "taskflow",
9 9 "userInterfaceStyle": "automatic",
10 10 "newArchEnabled": true,
@@ -14,7 +14,7 @@
14 14 "android": {
15 15 "adaptiveIcon": {
16 16 "backgroundColor": "#E6F4FE",
17 - "foregroundImage": "./assets/images/Logo.png"
17 + "foregroundImage": "./assets/images/Icon.png"
18 18 },
19 19 "edgeToEdgeEnabled": true,
20 20 "predictiveBackGestureEnabled": false,
@@ -29,7 +29,7 @@
29 29 [
30 30 "expo-splash-screen",
31 31 {
32 - "image": "./assets/images/Logo.png",
32 + "image": "./assets/images/Icon.png",
33 33 "imageWidth": 200,
34 34 "resizeMode": "contain",
35 35 "backgroundColor": "#ffffff",
@@ -41,7 +41,7 @@
41 41 [
42 42 "expo-notifications",
43 43 {
44 - "icon": "./assets/images/Logo.png",
44 + "icon": "./assets/images/Icon.png",
45 45 "color": "#0a7ea4",
46 46 "sounds": [],
47 47 "mode": "production"
MODIFY app/_layout.tsx +4 -7
diff --git a/app/_layout.tsx b/app/_layout.tsx
index 2df38ed..ae74d48 100644
--- a/app/_layout.tsx
+++ b/app/_layout.tsx
@@ -8,16 +8,13 @@
8 8 import { useColorScheme } from '@/hooks/use-color-scheme';
9 9 import { ThemeProvider } from '@/contexts/theme-context';
10 10
11 -export const unstable_settings = {
12 - anchor: '(tabs)',
13 -};
14 -
15 11 function RootLayoutNav() {
16 12 const colorScheme = useColorScheme();
17 13
18 14 return (
19 15 <NavigationThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
20 - <Stack>
16 + <Stack screenOptions={{ headerShown: false }} initialRouteName="index">
17 + <Stack.Screen name="index" options={{ headerShown: false }} />
21 18 <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
22 19 <Stack.Screen name="project/[id]" options={{ headerShown: false }} />
23 20 <Stack.Screen name="archive" options={{ headerShown: false }} />
@@ -26,7 +23,7 @@
26 23 options={{
27 24 presentation: 'transparentModal',
28 25 animation: 'fade',
29 - headerShown: false
26 + headerShown: false
30 27 }}
31 28 />
32 29 <Stack.Screen
@@ -34,7 +31,7 @@
34 31 options={{
35 32 presentation: 'transparentModal',
36 33 animation: 'fade',
37 - headerShown: false
34 + headerShown: false
38 35 }}
39 36 />
40 37 <Stack.Screen name="webdav-setup" options={{ headerShown: false }} />
ADD app/index.tsx +5 -0
diff --git a/app/index.tsx b/app/index.tsx
new file mode 100644
index 0000000..3861ed0
--- /dev/null
+++ b/app/index.tsx
@@ -0,0 +1,5 @@
1 +import { Redirect } from 'expo-router';
2 +
3 +export default function Index() {
4 + return <Redirect href="/(tabs)" />;
5 +}
MODIFY app/project-modal.tsx +5 -1
diff --git a/app/project-modal.tsx b/app/project-modal.tsx
index a1f40ef..a8996f2 100644
--- a/app/project-modal.tsx
+++ b/app/project-modal.tsx
@@ -25,7 +25,11 @@
25 25 const handleClose = async () => {
26 26 // Try to save before closing
27 27 if (projectFormRef.current?.handleSave) {
28 - await projectFormRef.current.handleSave();
28 + const saved = await projectFormRef.current.handleSave();
29 + if (!saved && projectId === 'new') {
30 + // Don't close if save failed on new project
31 + return;
32 + }
29 33 }
30 34
31 35 if (router.canDismiss()) {
ADD assets/images/Icon.png +0 -0
diff --git a/assets/images/Icon.png b/assets/images/Icon.png
new file mode 100644
index 0000000..7b2fddc
--- /dev/null
+++ b/assets/images/Icon.png
0 0 Binary files differ
DELETE assets/images/Logo.png +0 -0
diff --git a/assets/images/Logo.png b/assets/images/Logo.png
deleted file mode 100644
index 7b2fddc..0000000
--- a/assets/images/Logo.png
+++ /dev/null
0 0 Binary files differ
DELETE assets/images/android-icon-background.png +0 -0
diff --git a/assets/images/android-icon-background.png b/assets/images/android-icon-background.png
deleted file mode 100644
index 5ffefc5..0000000
--- a/assets/images/android-icon-background.png
+++ /dev/null
0 0 Binary files differ
DELETE assets/images/android-icon-foreground.png +0 -0
diff --git a/assets/images/android-icon-foreground.png b/assets/images/android-icon-foreground.png
deleted file mode 100644
index 3a9e501..0000000
--- a/assets/images/android-icon-foreground.png
+++ /dev/null
0 0 Binary files differ
DELETE assets/images/android-icon-monochrome.png +0 -0
diff --git a/assets/images/android-icon-monochrome.png b/assets/images/android-icon-monochrome.png
deleted file mode 100644
index 77484eb..0000000
--- a/assets/images/android-icon-monochrome.png
+++ /dev/null
0 0 Binary files differ
DELETE assets/images/favicon.png +0 -0
diff --git a/assets/images/favicon.png b/assets/images/favicon.png
deleted file mode 100644
index 408bd74..0000000
--- a/assets/images/favicon.png
+++ /dev/null
0 0 Binary files differ
DELETE assets/images/icon.png +0 -0
diff --git a/assets/images/icon.png b/assets/images/icon.png
deleted file mode 100644
index 7165a53..0000000
--- a/assets/images/icon.png
+++ /dev/null
0 0 Binary files differ
DELETE assets/images/splash-icon.png +0 -0
diff --git a/assets/images/splash-icon.png b/assets/images/splash-icon.png
deleted file mode 100644
index 03d6f6b..0000000
--- a/assets/images/splash-icon.png
+++ /dev/null
0 0 Binary files differ
MODIFY components/project-form.tsx +0 -3
diff --git a/components/project-form.tsx b/components/project-form.tsx
index 1075d58..1ccd08b 100644
--- a/components/project-form.tsx
+++ b/components/project-form.tsx
@@ -78,9 +78,6 @@
78 78 let savedProject: Project | undefined;
79 79 if (isNew) {
80 80 savedProject = await projectService.createProject(project);
81 - if (savedProject) {
82 - onSave?.(savedProject.id);
83 - }
84 81 } else if (id) {
85 82 savedProject = await projectService.updateProject(id, project);
86 83 setIsEditing(false);
MODIFY package-lock.json +25 -25
diff --git a/package-lock.json b/package-lock.json
index 7943ac8..4faa968 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,7 +14,7 @@
14 14 "@react-navigation/bottom-tabs": "^7.4.0",
15 15 "@react-navigation/elements": "^2.6.3",
16 16 "@react-navigation/native": "^7.1.8",
17 - "expo": "~54.0.22",
17 + "expo": "^54.0.23",
18 18 "expo-constants": "~18.0.10",
19 19 "expo-document-picker": "^14.0.7",
20 20 "expo-file-system": "^19.0.17",
@@ -2075,9 +2075,9 @@
2075 2075 }
2076 2076 },
2077 2077 "node_modules/@expo/metro-config": {
2078 - "version": "54.0.8",
2079 - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.8.tgz",
2080 - "integrity": "sha512-rCkDQ8IT6sgcGNy48O2cTE4NlazCAgAIsD5qBsNPJLZSS0XbaILvAgGsFt/4nrx0GMGj6iQcOn5ifwV4NssTmw==",
2078 + "version": "54.0.9",
2079 + "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-54.0.9.tgz",
2080 + "integrity": "sha512-CRI4WgFXrQ2Owyr8q0liEBJveUIF9DcYAKadMRsJV7NxGNBdrIIKzKvqreDfsGiRqivbLsw6UoNb3UE7/SvPfg==",
2081 2081 "license": "MIT",
2082 2082 "dependencies": {
2083 2083 "@babel/code-frame": "^7.20.0",
@@ -4584,9 +4584,9 @@
4584 4584 }
4585 4585 },
4586 4586 "node_modules/babel-preset-expo": {
4587 - "version": "54.0.6",
4588 - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-54.0.6.tgz",
4589 - "integrity": "sha512-GxJfwnuOPQJbzDe5WASJZdNQiukLw7i9z+Lh6JQWkUHXsShHyQrqgiKE55MD/KaP9VqJ70yZm7bYqOu8zwcWqQ==",
4587 + "version": "54.0.7",
4588 + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-54.0.7.tgz",
4589 + "integrity": "sha512-JENWk0bvxW4I1ftveO8GRtX2t2TH6N4Z0TPvIHxroZ/4SswUfyNsUNbbP7Fm4erj3ar/JHGri5kTZ+s3xdjHZw==",
4590 4590 "license": "MIT",
4591 4591 "dependencies": {
4592 4592 "@babel/helper-module-imports": "^7.25.9",
@@ -6296,30 +6296,30 @@
6296 6296 "license": "MIT"
6297 6297 },
6298 6298 "node_modules/expo": {
6299 - "version": "54.0.22",
6300 - "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.22.tgz",
6301 - "integrity": "sha512-w8J89M9BdVwo6urwvPeV4nAUwykv9si1UHUfZvSVWQ/b2aGs0Ci/a5RZ550rdEBgJXZAapIAhdW2M28Ojw+oGg==",
6299 + "version": "54.0.23",
6300 + "resolved": "https://registry.npmjs.org/expo/-/expo-54.0.23.tgz",
6301 + "integrity": "sha512-b4uQoiRwQ6nwqsT2709RS15CWYNGF3eJtyr1KyLw9WuMAK7u4jjofkhRiO0+3o1C2NbV+WooyYTOZGubQQMBaQ==",
6302 6302 "license": "MIT",
6303 6303 "peer": true,
6304 6304 "dependencies": {
6305 6305 "@babel/runtime": "^7.20.0",
6306 - "@expo/cli": "54.0.15",
6306 + "@expo/cli": "54.0.16",
6307 6307 "@expo/config": "~12.0.10",
6308 6308 "@expo/config-plugins": "~54.0.2",
6309 6309 "@expo/devtools": "0.1.7",
6310 6310 "@expo/fingerprint": "0.15.3",
6311 6311 "@expo/metro": "~54.1.0",
6312 - "@expo/metro-config": "54.0.8",
6312 + "@expo/metro-config": "54.0.9",
6313 6313 "@expo/vector-icons": "^15.0.3",
6314 6314 "@ungap/structured-clone": "^1.3.0",
6315 - "babel-preset-expo": "~54.0.6",
6315 + "babel-preset-expo": "~54.0.7",
6316 6316 "expo-asset": "~12.0.9",
6317 6317 "expo-constants": "~18.0.10",
6318 6318 "expo-file-system": "~19.0.17",
6319 6319 "expo-font": "~14.0.9",
6320 6320 "expo-keep-awake": "~15.0.7",
6321 - "expo-modules-autolinking": "3.0.20",
6322 - "expo-modules-core": "3.0.24",
6321 + "expo-modules-autolinking": "3.0.21",
6322 + "expo-modules-core": "3.0.25",
6323 6323 "pretty-format": "^29.7.0",
6324 6324 "react-refresh": "^0.14.2",
6325 6325 "whatwg-url-without-unicode": "8.0.0-3"
@@ -6473,9 +6473,9 @@
6473 6473 }
6474 6474 },
6475 6475 "node_modules/expo-modules-autolinking": {
6476 - "version": "3.0.20",
6477 - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.20.tgz",
6478 - "integrity": "sha512-W4XFE/A2ijrqvXYrwXug+cUQl6ALYKtsrGnd+xdnoZ+yC7HZag45CJ9mXR0qfLpwXxuBu0HDFh/a+a1MD0Ppdg==",
6476 + "version": "3.0.21",
6477 + "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-3.0.21.tgz",
6478 + "integrity": "sha512-pOtPDLln3Ju8DW1zRW4OwZ702YqZ8g+kM/tEY1sWfv22kWUtxkvK+ytRDRpRdnKEnC28okbhWqeMnmVkSFzP6Q==",
6479 6479 "license": "MIT",
6480 6480 "dependencies": {
6481 6481 "@expo/spawn-async": "^1.7.2",
@@ -6489,9 +6489,9 @@
6489 6489 }
6490 6490 },
6491 6491 "node_modules/expo-modules-core": {
6492 - "version": "3.0.24",
6493 - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.24.tgz",
6494 - "integrity": "sha512-wmL0R3WVM2WEs0UJcq/rF1FKXbSrPmXozgzhCUujrb+crkW8p7Y/qKyPBAQwdwcqipuWYaFOgO49AdQ36jmvkA==",
6492 + "version": "3.0.25",
6493 + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-3.0.25.tgz",
6494 + "integrity": "sha512-0P8PT8UV6c5/+p8zeVM/FXvBgn/ErtGcMaasqUgbzzBUg94ktbkIrij9t9reGCrir03BYt/Bcpv+EQtYC8JOug==",
6495 6495 "license": "MIT",
6496 6496 "dependencies": {
6497 6497 "invariant": "^2.2.4"
@@ -6861,9 +6861,9 @@
6861 6861 }
6862 6862 },
6863 6863 "node_modules/expo/node_modules/@expo/cli": {
6864 - "version": "54.0.15",
6865 - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.15.tgz",
6866 - "integrity": "sha512-tgaKFeYNRjZssPueZMm1+2cRek6mxEsthPoBX6NzQeDlzIzYBBpnAR6xH95UO6A7r0vduBeL2acIAV1Y5aSGJQ==",
6864 + "version": "54.0.16",
6865 + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-54.0.16.tgz",
6866 + "integrity": "sha512-hY/OdRaJMs5WsVPuVSZ+RLH3VObJmL/pv5CGCHEZHN2PxZjSZSdctyKV8UcFBXTF0yIKNAJ9XLs1dlNYXHh4Cw==",
6867 6867 "license": "MIT",
6868 6868 "dependencies": {
6869 6869 "@0no-co/graphql.web": "^1.0.8",
@@ -6876,7 +6876,7 @@
6876 6876 "@expo/json-file": "^10.0.7",
6877 6877 "@expo/mcp-tunnel": "~0.1.0",
6878 6878 "@expo/metro": "~54.1.0",
6879 - "@expo/metro-config": "~54.0.8",
6879 + "@expo/metro-config": "~54.0.9",
6880 6880 "@expo/osascript": "^2.3.7",
6881 6881 "@expo/package-manager": "^1.9.8",
6882 6882 "@expo/plist": "^0.4.7",
MODIFY package.json +1 -1
diff --git a/package.json b/package.json
index b667cc6..685eff9 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
17 17 "@react-navigation/bottom-tabs": "^7.4.0",
18 18 "@react-navigation/elements": "^2.6.3",
19 19 "@react-navigation/native": "^7.1.8",
20 - "expo": "~54.0.22",
20 + "expo": "^54.0.23",
21 21 "expo-constants": "~18.0.10",
22 22 "expo-document-picker": "^14.0.7",
23 23 "expo-file-system": "^19.0.17",

Keyboard shortcuts

?Show this help
g hGo home
EscClose dialog