-
Notifications
You must be signed in to change notification settings - Fork 1
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
feat(frontend): add email confirmation mutations and response types and adding control section bg #157
Conversation
WalkthroughThe changes update both a React UI component and the GraphQL API. In the UI, the Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant GraphQL
participant Database
Client->>GraphQL: confirmEmail(token)
GraphQL-->>Client: EmailConfirmationResponse (message, success)
Client->>GraphQL: resendConfirmationEmail(input)
GraphQL-->>Client: EmailConfirmationResponse (message, success)
Client->>GraphQL: getRemainingProjectLimit
GraphQL-->>Client: Integer (project limit)
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
frontend/src/graphql/schema.gqlOops! Something went wrong! :( ESLint: 8.57.1 ESLint couldn't find the config "next/core-web-vitals" to extend from. Please check that the name of the config is correct. The config "next/core-web-vitals" was referenced from the config file in "/frontend/.eslintrc.json". If you still have problems, please stop by https://eslint.org/chat/help to chat with the team. frontend/src/graphql/type.tsxOops! Something went wrong! :( ESLint: 8.57.1 ESLint couldn't find the config "next/core-web-vitals" to extend from. Please check that the name of the config is correct. The config "next/core-web-vitals" was referenced from the config file in "/frontend/.eslintrc.json". If you still have problems, please stop by https://eslint.org/chat/help to chat with the team. frontend/src/components/root/prompt-form.tsxOops! Something went wrong! :( ESLint: 8.57.1 ESLint couldn't find the config "next/core-web-vitals" to extend from. Please check that the name of the config is correct. The config "next/core-web-vitals" was referenced from the config file in "/frontend/.eslintrc.json". If you still have problems, please stop by https://eslint.org/chat/help to chat with the team. ✨ Finishing Touches
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:
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 (
|
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.
Actionable comments posted: 0
🧹 Nitpick comments (2)
frontend/src/graphql/schema.gql (2)
147-148
: Minor formatting improvement.The comment formatting change for the subscribers field improves readability.
241-241
: Deprecated field formatting improved.The comment for the deprecated field is now on a single line, which is cleaner.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
frontend/src/components/root/prompt-form.tsx
(1 hunks)frontend/src/graphql/schema.gql
(7 hunks)frontend/src/graphql/type.tsx
(18 hunks)
✅ Files skipped from review due to trivial changes (1)
- frontend/src/components/root/prompt-form.tsx
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Install and Build Frontend
🔇 Additional comments (16)
frontend/src/graphql/schema.gql (6)
60-63
: Well-structured response type.The new
EmailConfirmationResponse
type is well-designed, providing both a required message for user feedback and an optional success flag to indicate the operation result.
109-109
: Good API design using specific response type instead of boolean.Changing the
confirmEmail
mutation to returnEmailConfirmationResponse
instead of a boolean is a good improvement, as it provides more detailed feedback to users about the confirmation process.
119-119
: Email functionality successfully expanded.Adding the
resendConfirmationEmail
mutation completes the email confirmation workflow by giving users a way to request a new confirmation email if needed.
179-179
: Project limit query added.The
getRemainingProjectLimit
query provides a way for the frontend to check limitations, which is useful for showing appropriate UI feedback to users.
199-201
: Simple and focused input type.The
ResendEmailInput
type is appropriately focused with just the email field needed for the operation.
238-240
: User type appropriately extended.The addition of
isEmailConfirmed
andlastEmailSendTime
fields to the User type provides necessary tracking for email confirmation status and helps with rate limiting for email sending.frontend/src/graphql/type.tsx (10)
99-103
: TypeScript type matches GraphQL schema.The
EmailConfirmationResponse
TypeScript type correctly mirrors the GraphQL schema definition.
153-153
: Mutation return types properly updated.Both email-related mutations correctly return the
EmailConfirmationResponse
type, maintaining consistency with the schema.Also applies to: 163-163
175-177
: Mutation argument types well-defined.The argument types for both email confirmation mutations are properly typed, ensuring type safety when these mutations are used in the application.
Also applies to: 215-217
339-341
: Input type correctly implemented.The
ResendEmailInput
TypeScript type matches its GraphQL schema definition.
502-502
: Resolver types properly updated.The
EmailConfirmationResponse
andInt
types have been added to bothResolversTypes
andResolversParentTypes
, ensuring all resolvers will work correctly with these types.Also applies to: 506-506, 542-542, 546-546
647-655
: Resolver implementation for new type.The
EmailConfirmationResponseResolvers
type is properly defined with all required fields, ensuring proper TypeScript type checking for the resolvers.
710-715
: Mutation resolvers correctly typed.Both email confirmation mutation resolvers are properly typed with their respective argument types and return the
EmailConfirmationResponse
type.Also applies to: 770-775
915-919
: Project limit query resolver properly typed.The
getRemainingProjectLimit
query resolver is correctly typed to return anInt
.
985-990
: User resolver updated with new fields.The
User
resolver now includes the newisEmailConfirmed
andlastEmailSendTime
fields with proper types.
1012-1012
: Resolver map updated.The
Resolvers
object correctly includes the newEmailConfirmationResponse
resolver.
Summary by CodeRabbit
Style
New Features