Ft enhancements 10 3#1
Merged
devdaviddr merged 8 commits intomainfrom Mar 10, 2026
Merged
Conversation
- Implemented useUpdateProfile and useDeleteAccount hooks for managing user profile updates and account deletion. - Enhanced userService with corresponding updateMe and deleteMe functions. - Updated Dashboard component to utilize new hooks for profile management. feat(server): add user profile update and deletion endpoints - Introduced PUT and DELETE /api/me endpoints for updating user profiles and deleting accounts. - Added validation for profile updates using zod. - Enhanced userController to handle new endpoints and responses.
Added error handling to the login component for Google sign-in failures. Refactored authentication hooks to remove token parameters and utilize the user context directly. Updated tests to reflect these changes and improve overall code structure.
Updated useMe, useUpdateProfile, and useDeleteAccount hooks to fetch and utilize ID tokens for making authenticated requests. Added support for token handling in userService methods and corresponding tests to ensure proper header usage.
- Added delete account functionality in the Dashboard component. - Integrated axios interceptor to handle 401 responses and sign out users. - Enhanced AuthContext to register unauthenticated handler for session expiry. - Updated loading indicators and accessibility attributes in ProtectedRoute. - Improved error handling in Login component for better user feedback. - Added tests for new features and updated existing tests for consistency.
- Added ESLint configuration to enforce TypeScript and React best practices. - Introduced .eslintignore to exclude certain files and directories from linting. - Updated package.json files to include ESLint as a dev dependency. - Refactored various components to specify return types for better type safety. - Enhanced API service functions with explicit return types. - Updated tests to align with new type definitions and improve type safety.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a comprehensive, workspace-level ESLint setup for the monorepo, along with detailed documentation and project guidelines to standardize development practices across both client and server packages. It adds root-level configuration files, per-package environment and convention docs, and a CI workflow to ensure linting, testing, and building are consistently enforced. The most important changes are summarized below.
ESLint integration and configuration:
.eslintrc.cjs) with TypeScript, React, and import rules, including strict settings and targeted overrides for client, server, test, and config files. ([.eslintrc.cjsR1-R67](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-e1ce717e1179a0db14e90ec5374768a206651ca807db58352991eb7895ed7c9cR1-R67)).eslintignoreto exclude build artifacts, environment folders, and editor settings from linting. ([.eslintignoreR1-R7](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-a0fdacd2ade87c5238dde44378f574f7e123e669acdf8b740878b14b33b20275R1-R7))package.json. ([package.jsonL10-R22](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L10-R22))docs/eslint.md. ([docs/eslint.mdR1-R121](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-84c0d389da7764c4d73523f254375c8005f92bfe4c4fec94aefa59763ca28f34R1-R121))README.mdwith instructions for running linting at the workspace and package level. ([README.mdR187-R214](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R187-R214))Project structure, conventions, and documentation:
.github/copilot-instructions.md, covering architecture, layering, build/test commands, code style, security, and integration points. ([.github/copilot-instructions.mdR1-R75](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-227c2c26cb2ee0ce0f46a320fc48fbcbdf21801a57f59161b1d0861e8aad55f5R1-R75)).github/instructions/client.instructions.md), server (.github/instructions/server.instructions.md), and general TypeScript usage (.github/instructions/typescript.instructions.md). ([[1]](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-032723852ba89edd98ebfc35e025a65e7a4470a7c7d528d750224668498c39f3R1-R43),[[2]](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-7f1913d9bbe91869c679955bcb02bade202c1623f9afe20e6e3e3569a1a58dabR1-R41),[[3]](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-0edb472b50bb774292f433232ecbcb67c015660a75fdf6877c6cb12e3fa2d660R1-R27))[.github/.copilot-commit-message-instructions.mdR1-R47](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-9ac972a9b28c6bb26cd03e70bc2689237633a35cf803220951e2cd08904a3054R1-R47))[packages/client/.env.exampleR1-R8](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-72fb8cfef31ce867c7185e541752a08e1252d8db478af840a823f7f9249e8581R1-R8))Continuous Integration:
.github/workflows/ci.yml) that runs linting, client and server tests, and builds on every push or pull request tomain. ([.github/workflows/ci.ymlR1-R35](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03fR1-R35))Editor and tooling support:
[.vscode/settings.jsonR1-R7](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-a5de3e5871ffcc383a2294845bd3df25d3eeff6c29ad46e3a396577c413bf357R1-R7))Miscellaneous:
App.test.tsx. ([packages/client/src/App.test.tsxR10](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-efc3fd95ae67e08a34f52d605761874aa42a8e96ee006f79e3bf89900ece46ccR10))These changes collectively enforce consistent code quality, streamline onboarding, and provide clear guidance for all contributors across the monorepo.