Commit Graph

61 Commits

Author SHA1 Message Date
Mo Tarbin
b8fe2833b6 allow numbers in username 2026-07-30 02:02:08 -04:00
Mo Tarbin
c39bbe5984 Remove Logo from sign up and login flow 2026-07-30 02:02:08 -04:00
Mo Tarbin
9950d8ff6c Remove Logo from sign up and login flow 2026-07-30 02:02:08 -04:00
Mo Tarbin
99b467488f revamp login and signup screens 2026-07-30 02:02:08 -04:00
Mo Tarbin
0132408eec Unify modals and buttons style and layout 2026-07-29 10:38:20 -04:00
Mo Tarbin
f92063dfe9 hotfix: OAuth login being aborted by a forced logout on Android
The app logged itself out in the middle of the OAuth code exchange,
tearing down the page before the callback request could finish.

On resume, the deep-link handler and the sync-on-resume listener fire in
the same tick. Sync ran first, hit a 401 (no session exists yet), and
ApiClient treated that as an expired session: it cleared tokens, wiped
the offline DB, and hard-navigated to /login via window.location.href.
That reload aborted the in-flight POST /auth/oauth2/callback, surfacing
as "Authentication request failed TypeError: Failed to fetch".
2026-07-28 20:45:29 -04:00
Mo Tarbin
885427fa85 fix(ios): register Google Sign-In URL scheme to prevent launch crash
Merge duplicate CFBundleURLTypes entries in Info.plist so the Google
reversed-client-ID scheme and the donetick deep-link scheme coexist.
The second entry was overriding the first, causing GIDSignIn to throw
NSInvalidArgumentException for a missing URL scheme.
2026-07-16 19:40:34 -04:00
Mo Tarbin
46b1902af2 force login before login with google 2026-07-16 18:52:05 -04:00
Mo Tarbin
359202a594 fix: clear offline data on logout, session expiry, server change, and login
Offline DB was never wiped during logout, token expiry, or server URL
change, allowing stale data to persist across users and servers. Also
plugs the refresh-token expiry path which bypassed handleLogout entirely.
2026-07-14 11:08:46 -04:00
Mo Tarbin
d207f7e2b2 fix: implement UUID generation utility and replace crypto.randomUUID usage (to support genertaion when we are in http )in task and chore components 2026-07-09 14:44:05 -04:00
Mo Tarbin
181156de10 fix: prevent infinite reload loop in OAuth deep link handling and clean up comments in LoginView 2026-07-08 12:46:42 -04:00
Mo Tarbin
6b5f5c54dd Add MFA handling to AuthenticationLoading component 2026-06-30 01:45:12 -04:00
Mohamad Tarbin
fdac632b1c Merge pull request #124 from donetick/bug-fixes-06-27-2026
Bug fixes 06 27 2026
2026-06-30 01:23:52 -04:00
Mo Tarbin
e85220d727 Fix: Changing URL for backend requiring restart.
Fix: Add better feedback so user know if the url invalid or unreachable
2026-06-30 01:17:52 -04:00
nick
a7f832107d Use common storage function to save access and refresh tokens 2026-05-17 19:49:08 +00:00
gitbreaker222
e39fa172cb Update placeholder text for displayName input
Currently new users are asked to put their pw into the displayName input --> reveiling credentials!!
2026-04-06 18:39:43 +02:00
vi-ku
56c97001fa fix: hide Create new account button when signup is disabled
When is_user_creation_disabled is true in the /resource API response,
hide the 'Create new account' button on the login page entirely instead
of showing it and blocking with an error after the form is filled.

Fixes: donetick/donetick#602
2026-03-27 20:35:13 +05:30
Willem-Jan
4d58e52729 Aligned password requirements and increased max-length to 64 2026-02-15 13:18:33 +01:00
Mo Tarbin
57a16c4904 add bump-version script and update password reset functionality 2026-02-10 11:46:06 -05:00
Mo Tarbin
9c115efecb fix: ensure apiClient initialization and update resource queries in authentication flow 2026-02-10 00:42:25 -05:00
Mo Tarbin
b784f94a64 implement deep link handling for OAuth authentication
https://github.com/donetick/donetick/issues/504
2026-02-09 23:23:12 -05:00
Mo Tarbin
476c9f5840 Fix Google Authentication sending [object object] instead of serialized obj 2026-02-09 11:16:22 -05:00
Mo Tarbin
d663f047bd Fix OAuth URL 2026-02-09 11:15:36 -05:00
Mo Tarbin
86cfc10741 chore: update dependencies in package.json and refactor import statements in modal components 2026-02-08 01:40:33 -05:00
Mo Tarbin
31cb8f9fab Update import paths for apiClient to use consistent casing 2026-01-21 00:07:13 -05:00
Mo Tarbin
371631856a feat: Add Developer Settings page and integrate with SSE context for debugging
refactor: Update ApiClient to support dynamic server URL and improve token handling
refactor: Modify TokenStorage to utilize Capacitor for native platforms
refactor: Adjust Fetcher to use updated ApiClient methods
refactor: Enhance SettingsOverview to include Developer Settings option
2026-01-18 12:54:13 -05:00
Mo Tarbin
7c8fa27aaf feat: Add unarchive functionality to ChoreView and enhance project management features
- Implemented unarchive button for archived chores in ChoreView.
- Updated chore status handling to disable actions for archived chores.
- Enhanced MyChores component to filter tasks based on project selection, including a default project.
- Improved ProjectModal to streamline project creation and editing with a new footer layout.
- Refactored ProjectView to accurately count tasks for default and user projects.
- Added project selection dropdown in AddTaskModal with default project handling.
- Updated NavBar to handle logout using apiClient.
- Enhanced ProjectSelector to manage projects with a new menu item for project management.
2026-01-17 19:35:36 -05:00
Mo Tarbin
b326b1b3d7 refactor: update localStorage keys for token and expiration in authentication components 2026-01-16 15:04:27 -05:00
Mo Tarbin
8edd3774d2 Support Refresh token and improve authentication and security.
Refactor authentication handling and API client integration

- Updated UserProfileAvatar to use 'access_token' instead of 'ca_token' for logout.
- Removed SSEProvider from Contexts and adjusted related imports.
- Introduced useAuth hook for centralized authentication logic, including login, logout, and token management.
- Refactored useSSE to utilize the new useAuth hook for token validation.
- Updated UserQueries to check for token validity using the new method.
- Deleted AuthenticationService as its functionality is now handled by useAuth.
- Created a new ApiClient utility for handling API requests and token management.
- Updated various components and views to use the new ApiClient for API interactions.
- Removed TokenManager and migrated its functionality to the new ApiClient.
- Adjusted LoginView and related components to utilize the new authentication flow.
- Cleaned up unused variables and improved code consistency across components.
2025-12-25 22:54:39 -05:00
Mo Tarbin
409c5a0ba3 enhance user input validation and parsing for usernames, points, and labels 2025-10-02 21:45:25 -04:00
Mo Tarbin
d41d6bd758 feat: add sub user management features including creation, deletion, and password updates 2025-09-28 19:12:26 -04:00
Mo Tarbin
b71a533024 enhance impersonation context and user profile handling; improve UI interactions in chore history and timer details 2025-09-15 23:52:28 -04:00
Mo Tarbin
bd14a35e23 add terms and privacy policy agreement message to SignupView 2025-09-14 21:56:53 -04:00
Mo Tarbin
43decb21f4 Refactor StorageSettings to use SettingsLayout and improve layout structure; add ThemeSettings component; update TermsView with new terms and structure; enhance ThingsView styling; clean up AddTaskModal by removing experimental feature chip; create CalendarCard component for calendar overview; optimize CustomParsers for repeat parsing; update NavBar for improved navigation and search parameter handling. 2025-09-11 01:17:27 -04:00
Mo Tarbin
6403d135ea feat: Implement User Switcher and add subscription cancellation modal 2025-09-02 01:50:06 -04:00
Mo Tarbin
cf4d0565c5 feat: Enhance Signup and Chores functionality
- Added query invalidation on signup to refresh user profile data.
- Improved MyChores component to ensure data is loaded before rendering.
- Introduced dynamic sidepanel configuration with drag-and-drop functionality.
- Created TasksByAssigneeCard to visualize tasks assigned to users.
- Updated MFASettings and Settings components for better structure and usability.
- Implemented SettingsOverview for a comprehensive settings navigation experience.
- Added SidepanelSettings for customizing sidepanel card visibility and order.
- Refactored NavBar to include user profile avatar and improved layout.
2025-08-29 00:50:54 -04:00
Mo Tarbin
6064c88f2c Refactor navigation paths to use '/chores' instead of '/my/chores' across multiple components for consistency 2025-08-25 20:21:06 -04:00
Mo Tarbin
65f84b116f Refactor chore components and enhance scheduling features
- Removed redundant priority color function from CompactChoreCard and imported from Colors utility.
- Replaced FadeModal with ResponsiveModal in MultiSelectHelp for improved modal handling.
- Simplified MyChores component by removing archived chores state and related logic, and added keyboard shortcut for navigating to archived tasks.
- Integrated ResponsiveModal in RedeemPointsModal for consistent modal usage.
- Added quick scheduling options in ChoreActionMenu for better task management, including scheduling for today, tomorrow, weekend, and next week.
- Enhanced CustomParsers to support nth occurrence of days in monthly scheduling.
- Updated NavBar links and navigation logic for improved user experience.
2025-08-22 23:37:30 -04:00
Mo Tarbin
c9178db87d Enhance Settings, Things History, User Activities, and User Points views
- Integrated RevenueCat for subscription management in Settings.
- Added subscription and user deletion modals in Settings.
- Improved analytics display in Things History with update frequency and trend calculations.
- Enhanced User Activities timeline with a more structured layout.
- Revamped User Points section with a leaderboard and detailed points analytics.
- Introduced responsive design elements and improved user experience across various components.
- Add permission for Camera to support uploading photo via camera
2025-08-04 22:25:30 -04:00
Mo Tarbin
4f444bd3c9 Feature: implement useThingHistory hook and refactor ThingsHistory component for improved data fetching and rendering 2025-07-20 10:41:14 -04:00
Mo Tarbin
8b8345d0e6 Refactor modals to use FadeModal component for consistent styling and improved user experience
- fix https://github.com/donetick/donetick/issues/222

- Replaced Modal and ModalDialog with FadeModal in LabelModal, PasswordChangeModal, SelectModal, TextModal, UserModal, WriteNFCModal, RedeemPointsModal, and AddTaskModal.
- Updated modal structure and layout to maintain functionality while enhancing visual consistency.
- Removed unused imports and commented-out code for cleaner codebase.
2025-06-27 01:42:38 -04:00
Mo Tarbin
5b83bf35d0 update notification handling and improve sorting logic in NotificationTemplate component 2025-06-22 17:21:22 -04:00
Mo Tarbin
fb8c45a86d refactor: Remove unused user profile references and improve SSE/WebSocket connection logic 2025-06-18 00:19:18 -04:00
Mo Tarbin
c7e2cb9d06 fix: Adjust error message formatting for better readability in multiple components 2025-06-14 00:06:25 -04:00
Mo Tarbin
2077b0ab4c Refactor error handling and notification system
- Removed the ErrorProvider component and replaced it with a unified NotificationProvider.
- Updated all components to utilize the new NotificationProvider for displaying notifications.
- Enhanced notification types to include success, error, warning, and info with customizable messages and titles.
- Removed Snackbar components from various views and replaced them with calls to the NotificationProvider.
- Updated the ForgotPasswordView, LoginView, SignupView, and other components to handle notifications more effectively.
- Improved user experience by providing consistent notification handling across the application.
2025-06-13 23:52:02 -04:00
Mo Tarbin
e21e71b442 feat: Refactor user profile management and improve token validation
- Introduced `useUserProfile` hook to centralize user profile fetching and management.
- Updated various components to utilize the new `useUserProfile` hook instead of context.
- Enhanced token validation logic in `Fetch` function to prevent unnecessary redirects.
- Added `parseDueDate` function to handle due date parsing with improved logic.
- Cleaned up user profile state management across multiple views and settings.
- Improved loading states and error handling in user-related components.
- remove usercontext and just use react query for userProfile
2025-06-08 02:09:23 -04:00
Mo Tarbin
10f646f125 refactor: Update LoginView to use useUserProfile hook and clean up user profile handling
- fix bug cause navigation loop
2025-06-08 02:07:33 -04:00
Mo Tarbin
34a386abce feat: Implement Multi-Factor Authentication (MFA) flow in LoginView and add MFA settings page
- Added MFA verification modal to handle MFA during login.
- Integrated MFA checks in login and OAuth login processes.
- Created MFASettings component to manage MFA setup, enabling, disabling, and backup codes.
- Updated ProfileSettings to include timezone selection.
- Enhanced CalendarView to display assignee names with avatars.
- Added RichTextEditor enhancements for image uploads based on user account type.
- Minor adjustments to ChoreEdit and ChoreView components for better UX.
2025-05-31 01:36:55 -04:00
Mo Tarbin
c1f2c062fe Add SmartTaskInput with Custom Renderer.
Change to use `@tanstack/react-query`
Add Global ErrorProvider
Add limited Support for offline version
Fix issue with calendar display +1 day
2025-04-24 19:14:17 -04:00
Ulrik Kristensen
a98f9c698b fixes randomState to have 8 chars instead of 6 2025-03-03 13:20:08 +01:00