From 41fb8b6bf46c2dbaaf78c4f7f43a0f45ced5263d Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Mon, 9 Feb 2026 21:00:27 -0500 Subject: [PATCH 1/4] add bump-version script and update password reset functionality --- package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 2b8e621..ec177a7 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,10 @@ "merge": "git checkout main && git merge develop && git push origin main && git checkout develop", "ionic:build": "npm run build", "ionic:serve": "npm run start", - "android": "npm run build && npx cap sync android" + "android": "npm run build && npx cap sync android", + "bump": "node bump-version.js", + "bump:minor": "node bump-version.js minor", + "bump:major": "node bump-version.js major" }, "dependencies": { "@capacitor-community/sqlite": "^7.0.0", From eba629e5a72c450066aab8efe18db964c54d5721 Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Tue, 10 Feb 2026 19:05:09 -0500 Subject: [PATCH 2/4] sync version across ios /android and web --- android/app/build.gradle | 4 ++-- ios/App/App.xcodeproj/project.pbxproj | 8 ++++---- package.json | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 347ae66..76c98db 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.donetick.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 13 - versionName "1.0.4" + versionCode 21 + versionName "0.3.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index 35da000..6b04af5 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -355,12 +355,12 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 13; + CURRENT_PROJECT_VERSION = 21; DEVELOPMENT_TEAM = 6UJJ78R3BS; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.0.4; + MARKETING_VERSION = 0.3.0; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -374,12 +374,12 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 13; + CURRENT_PROJECT_VERSION = 21; DEVELOPMENT_TEAM = 6UJJ78R3BS; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.0.4; + MARKETING_VERSION = 0.3.0; PRODUCT_BUNDLE_IDENTIFIER = com.donetick.app; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; diff --git a/package.json b/package.json index ec177a7..4943d82 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "donetick", "private": true, - "version": "0.1.145", + "version": "0.3.0", "type": "module", "engines": { "node": ">=20.0.0", From 032b9f1f1760040fd994706963a132cb2c813ff9 Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Tue, 10 Feb 2026 19:06:01 -0500 Subject: [PATCH 3/4] update version codes to 0.4.0 for Android, iOS, and package.json --- android/app/build.gradle | 4 ++-- ios/App/App.xcodeproj/project.pbxproj | 8 ++++---- package.json | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 76c98db..ea2da41 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.donetick.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 21 - versionName "0.3.0" + versionCode 22 + versionName "0.4.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index 6b04af5..9a5aeb1 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -355,12 +355,12 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 21; + CURRENT_PROJECT_VERSION = 22; DEVELOPMENT_TEAM = 6UJJ78R3BS; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 0.3.0; + MARKETING_VERSION = 0.4.0; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -374,12 +374,12 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 21; + CURRENT_PROJECT_VERSION = 22; DEVELOPMENT_TEAM = 6UJJ78R3BS; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 0.3.0; + MARKETING_VERSION = 0.4.0; PRODUCT_BUNDLE_IDENTIFIER = com.donetick.app; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; diff --git a/package.json b/package.json index 4943d82..3f0a067 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "donetick", "private": true, - "version": "0.3.0", + "version": "0.4.0", "type": "module", "engines": { "node": ">=20.0.0", From d9d93ffad350321ab04ad9a5e3cf861b2979d8a7 Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Tue, 10 Feb 2026 20:38:01 -0500 Subject: [PATCH 4/4] clean up imports and remove unused quick schedule functionality in DateModal --- src/views/Labels/LabelView.jsx | 26 +++++------ src/views/Modals/Inputs/DateModal.jsx | 63 ++------------------------- 2 files changed, 16 insertions(+), 73 deletions(-) diff --git a/src/views/Labels/LabelView.jsx b/src/views/Labels/LabelView.jsx index 875414a..1a6ddcb 100644 --- a/src/views/Labels/LabelView.jsx +++ b/src/views/Labels/LabelView.jsx @@ -1,14 +1,14 @@ import DeleteIcon from '@mui/icons-material/Delete' import EditIcon from '@mui/icons-material/Edit' import { - Avatar, - Box, - Chip, - CircularProgress, - Container, - IconButton, - Stack, - Typography, + Avatar, + Box, + Chip, + CircularProgress, + Container, + IconButton, + Stack, + Typography, } from '@mui/joy' import { useEffect, useState } from 'react' import LabelModal from '../Modals/Inputs/LabelModal' @@ -16,11 +16,11 @@ import LabelModal from '../Modals/Inputs/LabelModal' import { Add } from '@mui/icons-material' import { useQueryClient } from '@tanstack/react-query' import { - Type as ListType, - SwipeableList, - SwipeableListItem, - SwipeAction, - TrailingActions, + Type as ListType, + SwipeableList, + SwipeableListItem, + SwipeAction, + TrailingActions, } from 'react-swipeable-list' import 'react-swipeable-list/dist/styles.css' import { useUserProfile } from '../../queries/UserQueries' diff --git a/src/views/Modals/Inputs/DateModal.jsx b/src/views/Modals/Inputs/DateModal.jsx index da5ce7c..52ed0d1 100644 --- a/src/views/Modals/Inputs/DateModal.jsx +++ b/src/views/Modals/Inputs/DateModal.jsx @@ -1,5 +1,4 @@ -import { NextWeek, Today, WbSunny, Weekend } from '@mui/icons-material' -import { Box, Button, Chip, Input, Stack, Typography } from '@mui/joy' +import { Box, Button, Input } from '@mui/joy' import { useState } from 'react' import { useResponsiveModal } from '../../../hooks/useResponsiveModal' @@ -10,62 +9,6 @@ function DateModal({ isOpen, onClose, onSave, current, title }) { current ? new Date(current).toISOString().split('T')[0] : '', ) - const getQuickScheduleDate = option => { - const now = new Date() - const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()) - - switch (option) { - case 'today': { - const nowHour = now.getHours() - const scheduled = new Date(today) - if (nowHour < 9) { - scheduled.setHours(9, 0, 0, 0) - } else if (nowHour < 12) { - scheduled.setHours(12, 0, 0, 0) - } else if (nowHour < 17) { - scheduled.setHours(17, 0, 0, 0) - } else { - scheduled.setHours( - now.getHours(), - now.getMinutes(), - now.getSeconds(), - now.getMilliseconds(), - ) - } - return scheduled - } - case 'tomorrow': { - const tomorrow = new Date(today) - tomorrow.setDate(today.getDate() + 1) - tomorrow.setHours(12, 0, 0, 0) - return tomorrow - } - case 'weekend': { - const weekend = new Date(today) - const daysUntilSaturday = (6 - today.getDay() + 7) % 7 || 7 - weekend.setDate(today.getDate() + daysUntilSaturday) - return weekend - } - case 'next-week': { - const nextWeek = new Date(today) - const daysUntilMonday = (1 - today.getDay() + 7) % 7 || 7 - nextWeek.setDate(today.getDate() + daysUntilMonday) - return nextWeek - } - default: - return today - } - } - - const handleQuickSchedule = option => { - if (option === 'remove') { - setDate('') - } else { - const selectedDate = getQuickScheduleDate(option) - setDate(selectedDate.toISOString().split('T')[0]) - } - } - const handleSave = () => { onSave(date) onClose() @@ -86,7 +29,7 @@ function DateModal({ isOpen, onClose, onSave, current, title }) { onChange={e => setDate(e.target.value)} /> - + {/* Quick select: @@ -132,7 +75,7 @@ function DateModal({ isOpen, onClose, onSave, current, title }) { Next week - + */}