-
-
Notifications
You must be signed in to change notification settings - Fork 19
Toggle Active Sync to test Background Sync #3122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughThis update introduces the ability for users with "@tuturuuu.com" email addresses to toggle an "Active Sync" feature for Google Calendar synchronization. It achieves this by extending the calendar sync context and provider with new state and control logic, and conditionally rendering the toggle in the Google Calendar settings UI. Additionally, type declarations for database functions are reorganized and slightly extended for consistency. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant GoogleCalendarSettings
participant useCalendarSync (Context)
participant Supabase
User->>GoogleCalendarSettings: Open Settings
GoogleCalendarSettings->>Supabase: Fetch authenticated user info
Supabase-->>GoogleCalendarSettings: Return user email
GoogleCalendarSettings->>GoogleCalendarSettings: Check if email includes "@tuturuuu.com"
alt Tuturuuu user
GoogleCalendarSettings->>User: Render "Active Sync" toggle
User->>GoogleCalendarSettings: Toggle "Active Sync"
GoogleCalendarSettings->>useCalendarSync: setIsActiveSyncOn(newState)
alt isActiveSyncOn becomes true
useCalendarSync->>useCalendarSync: Trigger syncToTuturuuu()
end
end
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
packages/types/src/supabase.tsOops! Something went wrong! :( ESLint: 9.29.0 Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@typescript-eslint/parser' imported from /eslint.config.mjs packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsxOops! Something went wrong! :( ESLint: 9.29.0 Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@typescript-eslint/parser' imported from /eslint.config.mjs packages/ui/src/hooks/use-calendar-sync.tsxOops! Something went wrong! :( ESLint: 9.29.0 Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@typescript-eslint/parser' imported from /eslint.config.mjs 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (3)
🧰 Additional context used🧬 Code Graph Analysis (1)packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx (1)
🪛 GitHub Check: codecov/patchpackages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx[warning] 15-15: packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx#L15 [warning] 18-18: packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx#L18 [warning] 21-21: packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx#L21 [warning] 87-87: packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx#L87 [warning] 89-89: packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx#L89 [warning] 91-104: packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx#L91-L104 [warning] 432-439: packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx#L432-L439 packages/ui/src/hooks/use-calendar-sync.tsx[warning] 69-70: packages/ui/src/hooks/use-calendar-sync.tsx#L69-L70 [warning] 129-129: packages/ui/src/hooks/use-calendar-sync.tsx#L129 [warning] 344-347: packages/ui/src/hooks/use-calendar-sync.tsx#L344-L347 [warning] 603-603: packages/ui/src/hooks/use-calendar-sync.tsx#L603 [warning] 628-628: packages/ui/src/hooks/use-calendar-sync.tsx#L628 [warning] 630-632: packages/ui/src/hooks/use-calendar-sync.tsx#L630-L632 [warning] 635-647: packages/ui/src/hooks/use-calendar-sync.tsx#L635-L647 [warning] 884-885: packages/ui/src/hooks/use-calendar-sync.tsx#L884-L885 ⏰ Context from checks skipped due to timeout of 90000ms (7)
🔇 Additional comments (10)
✨ Finishing Touches
🧪 Generate Unit Tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @DennieDan, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request introduces a new 'Active Sync' feature, providing a toggle to control calendar synchronization behavior. This functionality is primarily aimed at facilitating testing of background sync mechanisms by allowing internal users to enable or disable active syncing. The changes include UI additions, a new React hook for state management, and updates to auto-generated database type definitions.
Highlights
- Active Sync Toggle: Introduced a new UI toggle for 'Active Sync' within the Google Calendar settings, allowing for manual control over the calendar synchronization process.
- Conditional UI Visibility: The 'Active Sync' toggle is conditionally displayed only to users with
@tuturuuu.com
email addresses, indicating it's intended for internal testing or specific user groups. - Calendar Synchronization Control: Implemented logic within the
useCalendarSync
hook to block thesyncToTuturuuu
function (which handles syncing calendar data to the application's database) when 'Active Sync' is disabled. - Supabase Type Definition Updates: Updated the auto-generated Supabase type definitions (
supabase.ts
), primarily involving reordering of properties within function argument and return types, and some property relocations (e.g.,created_at
moved between user functions,id
anddisplay_name
moved between search functions). These changes are likely a side effect of schema updates or a type generation process.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3122 +/- ##
==========================================
- Coverage 0.80% 0.80% -0.01%
==========================================
Files 2542 2542
Lines 323788 323840 +52
Branches 3043 3043
==========================================
Hits 2621 2621
- Misses 318998 319050 +52
Partials 2169 2169 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This PR introduces a UI toggle to enable/disable "Active Sync" for Google Calendar, primarily for testing background sync functionality. The core changes in the React components and hooks correctly implement this toggle.
The review identified two main points:
- Numerous type property reorderings in
packages/types/src/supabase.ts
seem unrelated to the PR's purpose and add noise to the diff. It's recommended to clarify their origin or consider moving them to a separate PR if they are part of a broader formatting update. - The conditional display of the new toggle in
packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx
is based on a hardcoded email domain check (@tuturuuu.com
). While suitable for a temporary testing feature, a more robust solution (like feature flags or user roles) should be considered if this functionality becomes permanent or needs to be extended.
Overall, the primary goal of the PR is achieved. Addressing the unrelated changes and considering future improvements for the conditional logic would enhance maintainability.
packages/ui/src/components/ui/legacy/calendar/settings/google-calendar-settings.tsx
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks @DennieDan.
Notice that the default settings is
isActiveSyncOn=false
so non-tuturuuu.com account by default now don't have active sync. This is meant for us to test the backgroundSync easier.