Commit Graph

71 Commits

Author SHA1 Message Date
Mihaly Hobor
7af904d860 Add windows developer build 2026-01-22 23:15:16 +01:00
Mo Tarbin
242f382da3 chore: Remove empty optionalDependencies section from package.json 2026-01-21 00:09:38 -05:00
Mo Tarbin
a879bd09b4 feat: Add android build script and baseline-browser-mapping dependency 2026-01-21 00:09:15 -05:00
Mo Tarbin
ed273fbfce chore: Bump version to 0.1.120 in package.json 2026-01-21 00:08:08 -05:00
Mo Tarbin
68f09125d4 chore: bump version to 0.1.115 2025-09-28 19:32:40 -04:00
Mohamad Tarbin
d28ecb509e Performance optimization 09 24 (#6)
* perf: optimize MyChores component performance and fix timer errors

## Fixed Issues
-  Timer error: `Timer '🏁 Main useEffect processing' does not exist`
-  Reduced 1049ms and 613ms message handler violations
-  Fixed 1+ second blank screen before chores display
-  Eliminated multiple redundant `getFilteredChores` calculations

## Performance Optimizations

### 1. Fixed Timer Execution Issue
**Problem**: React strict mode was causing timer mismatch between `console.time` and `console.timeEnd`
**Solution**: Restructured async useEffect to ensure proper timer lifecycle
```javascript
// Before: Timer in async IIFE caused double-execution issues
;(async () => {
  console.time('🏁 Main useEffect processing')
  // ...
  console.timeEnd('🏁 Main useEffect processing')
})()

// After: Proper async function structure
const processEffectAsync = async () => {
  // ... async operations
  console.timeEnd('🏁 Main useEffect processing')
}
processEffectAsync()
```

### 2. Optimized useState Lazy Initialization
**Problem**: `JSON.parse()` called on every render for state initialization
```javascript
// Before: Expensive operation on each render
const [openChoreSections, setOpenChoreSections] = useState(
  JSON.parse(localStorage.getItem('openChoreSections')) || {},
)

// After: Lazy initialization with error handling
const [openChoreSections, setOpenChoreSections] = useState(() => {
  try {
    return JSON.parse(localStorage.getItem('openChoreSections')) || {}
  } catch {
    return {}
  }
})
```

### 3. Reduced useEffect Dependencies
**Problem**: useEffect running too frequently due to object reference dependencies
```javascript
// Before: Full objects cause frequent re-runs
}, [choresData, membersData, userProfile, impersonatedUser, ...]

// After: Only specific properties that matter
}, [choresData?.res, membersData?.res, userProfile?.id, impersonatedUser?.userId, ...]
```

### 4. Added Memoization for Section Updates
**Problem**: `choreSections` updated even when data hadn't actually changed
```javascript
// Before: Always updating sections
setChoreSections(processedSections)

// After: Only update if data actually changed
setChoreSections(prevSections => {
  if (JSON.stringify(prevSections) === JSON.stringify(processedSections)) {
    return prevSections
  }
  return processedSections
})
```

### 5. Optimized localStorage Access
**Problem**: Multiple `localStorage.getItem()` calls and repeated parsing
```javascript
// Before: Multiple localStorage calls
if (localStorage.getItem('openChoreSections') === null) {
  // ...localStorage operations
}

// After: Single cached read
const storedSections = localStorage.getItem('openChoreSections')
if (storedSections === null) {
  // ...operations
}
```

### 6. Added useMemo/useCallback for Heavy Computations
- `processedChores` - Memoized chore sorting and filtering
- `processedSections` - Memoized section grouping
- `getFilteredChores` - Memoized filtered chore calculations
- `handleChoreUpdated`, `handleChoreDeleted`, `updateChores` - useCallback for stable references

## Performance Results
**Before**: 1+ second loading delay, timer errors, frequent violations
**After**:
- `processedChores calculation: ~0.002ms` (was much slower)
- `processedSections calculation: ~0.001ms` (was much slower)
- `getFilteredChores: ~0.022ms` (down from multiple slow calls)
- `Main useEffect processing: ~0.298ms` (reasonable time)
- `Auto-update sections: ~0.007ms` (very fast)

🚀 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: update package.json to remove deprecated @vitejs/plugin-react dependency and add wrangler.toml for build configuration

* Revert vite.config.js to it's original state

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-26 02:21:07 -04:00
Mo Tarbin
1b49a6f3f7 feat: add @vitejs/plugin-react dependency for improved React support 2025-09-21 16:52:53 -04:00
Mo Tarbin
219aa06835 chore: bump version to 0.1.111 2025-09-11 01:18:39 -04:00
Mo Tarbin
4a54115e31 remove option dependency 2025-09-04 02:49:30 -04:00
Mo Tarbin
3a80838b4c chore: remove architecture-specific dependencies for darwin arm64 2025-09-04 02:43:24 -04:00
Mo Tarbin
714ae7b9f0 chore: add rollup and swc core dependencies for darwin arm64 architecture 2025-09-04 02:40:27 -04:00
Mo Tarbin
f5f60cc9eb Update dependencies and move architecture-specific packages to optionalDependencies 2025-09-04 02:27:50 -04:00
Mo Tarbin
0c1e5a9628 chore: Bump version to 0.1.110 2025-09-02 01:50:49 -04:00
Mo Tarbin
e99a06654e chore: Bump version to 0.1.109 and update dependencies 2025-08-29 00:54:27 -04:00
Mo Tarbin
06d568e61d Bump version to 0.1.108 in package.json 2025-08-25 23:41:56 -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
72ae2ec5c4 chore: bump version to 0.1.107 in package.json 2025-07-28 23:57:40 -04:00
Mo Tarbin
49a9055a73 chore: bump version to 0.1.106 in package.json 2025-07-20 10:41:28 -04:00
Mo Tarbin
fc5a40ace0 bump version to 0.1.105 2025-07-13 01:32:48 -04:00
Mo Tarbin
79382ce6f8 fix: update build-selfhosted script to include package-lock.json cleanup and dependency installation 2025-06-23 01:47:45 -04:00
Mo Tarbin
981513086b fix: update version to 0.1.104 in package.json 2025-06-23 00:50:14 -04:00
Mo Tarbin
9f4bfe75d1 fix: remove rollup from dependencies and optionalDependencies in package.json 2025-06-22 22:08:33 -04:00
Mo Tarbin
dcd8bbbd01 fix: update build-cf script to remove unnecessary node_modules cleanup 2025-06-22 22:04:09 -04:00
Mo Tarbin
cadfa5e034 fix: update build commands and add optional dependencies for cross-platform support 2025-06-22 22:00:40 -04:00
Mo Tarbin
76ea0c4978 fix: update package.json and package-lock.json to include optional rollup and swc dependencies for darwin arm64 2025-06-22 21:51:20 -04:00
Mo Tarbin
c1321203c1 fix: update rollup and swc dependencies for darwin arm64 support 2025-06-22 21:45:33 -04:00
Mo Tarbin
a8388db1c3 add rollup as a dependency in package.json 2025-06-22 17:30:55 -04:00
Mo Tarbin
f0589c2f33 chore: remove unnecessary rollup dependency for darwin arm64 2025-06-22 17:28:20 -04:00
Mo Tarbin
18e57e20ed update dependencies to include rollup for darwin arm64 and swc core 2025-06-22 17:22:32 -04:00
Mo Tarbin
97fb8d8561 chore: update package.json to specify Node and npm engine requirements, and add build-cf script for clean build 2025-06-21 01:24:14 -04:00
Mo Tarbin
46fb1f0ac0 chore: Bump version to 0.1.103 in package.json 2025-06-21 01:10:46 -04:00
Mo Tarbin
c903192d7c Add confirmation modals for token removal and storage clearing actions 2025-06-19 12:40: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
6ddb8d01ec feat: add profile and storage settings components, integrate rich text editor, and implement image compression for uploads 2025-05-27 02:18:59 -04:00
Mo Tarbin
7ae2859c78 fix: update version to 0.1.101 in package.json 2025-05-16 20:38:50 -04:00
Mo Tarbin
4206cbd557 chore: update dependencies to version 7.0.0 and above, including Capacitor packages and MUI icons 2025-04-24 20:51:01 -04:00
Mo Tarbin
33d46209ef Add network management features and sync functionality; introduce NetworkBanner component 2025-04-12 01:03:00 -04:00
Mo Tarbin
77464db1b0 Bump version to 0.1.97 2025-03-17 01:04:04 -04:00
Mo Tarbin
d9de502894 Bump version to 0.1.96 2025-03-05 19:45:29 -05:00
Mo Tarbin
bbea27d380 Bump version to 0.1.95 and add dnd-kit dependencies; implement CompleteSubTask function and enhance chore sorting logic 2025-02-25 23:39:59 -05:00
Mo Tarbin
cfc121bbca Bump package version to 0.1.94 2025-02-11 20:50:00 -05:00
Mo Tarbin
06519a0e5c Bump package version to 0.1.93 2025-02-06 20:22:07 -05:00
Mo Tarbin
b221f38465 Update package version to 0.1.92 2025-02-02 10:52:13 -05:00
Mo Tarbin
9dc3edb40e Update package version to 0.1.91 2025-01-17 00:50:36 -05:00
Mo Tarbin
52570a3bad Update npm dependencies to include chrono-node v2.7.7 2025-01-14 02:12:48 -05:00
Mo Tarbin
1b1da5f3af Update Package.json 2024-12-31 02:22:21 -05:00
Mo Tarbin
d4c36e2057 Initial Activity View
Add New Colors.jsx
Allow Dark model Toggle from the Navbar
2024-12-28 18:52:06 -05:00
Mo Tarbin
0f2781ff6a chore: Add reusify npm dependency for code optimization 2024-12-26 19:00:16 -05:00
Mohamad Tarbin
bcd32a8616 Mobile app (#3)
* Initial Capacitor Config and plugins

* Add Android project files and resources

* Add local notification scheduling for chores

* Add NotificationAccessSnackbar component for handling notification preferences

* Add capacitor-preferences to Android project

* Update notification Snackbar

* Add local notification scheduling for chores

* Add ionic.config.json file for custom project configuration

* chore: Add environment variables for production deployment

* Add Support for IOS, pass notificaiton token(push notifications)

* Add Capacitor Device support and refactor notification handling

* Refactor GoogleAuth client IDs to use environment variables

* Remove google-services.json to enhance security by eliminating sensitive data from the repository

* Remove environment files to enhance security by eliminating sensitive data from the repository

* Rename project from fe-template to Donetick in ionic.config.json

* Remove GoogleService-Info.plist and Info.plist to enhance security by eliminating sensitive data from the repository

---------

Co-authored-by: Mo Tarbin <mohamad@Mos-MacBook-Pro.local>
2024-12-26 02:13:47 -05:00
Mo Tarbin
88c11eeeea Support Loading Archived / Completed Tasks, Fix Assignee bug #49 2024-12-15 18:10:50 -05:00