- Update login page to be server component that extracts searchParams
- Pass redirectTo as prop to LoginForm instead of using useSearchParams
- Add helper function to reduce code duplication in middleware
- Add URL validation in layout component as suggested in PR comments
- Follow Next.js App Router best practices for server/client components
Co-Authored-By: nate@buster.so <nate@buster.so>
- Update middleware to capture original URL and add as 'next' query param
- Modify layout redirect to include redirect parameter
- Update LoginForm to extract and pass redirect to all auth methods
- Add redirect parameter support to all sign-in functions
- Implement URL validation with fallback to home page
- Update OAuth callback to handle redirects consistently
- Support all authentication methods: email/password, Google, GitHub, Azure
Co-Authored-By: nate@buster.so <nate@buster.so>
- Move useThemeOperations hook from colors feature to new src/context-hooks folder
- Add README.md explaining context-hooks folder purpose for API/context related hooks
- Remove isAdmin context check from ThemeList component, now only uses hideThreeDotMenu prop
- Update all import statements to reference new hook location
- Maintain theme categorization logic in ColorsApp.tsx for proper three-dot menu hiding
Co-Authored-By: nate@buster.so <nate@buster.so>
- Add proper type annotations for theme parameters in useThemeOperations and ColorsApp
- Make onSelectTheme async for consistency
- Remove unused imports (useGetUser, useUpdateOrganization)
- Add userConfig to useMemo dependency array
Co-Authored-By: nate@buster.so <nate@buster.so>
- Move hook from generic src/hooks to src/components/features/colors for better organization
- Update import paths in ColorsApp and DefaultThemeSelector
- Remove export from generic hooks index file
Co-Authored-By: nate@buster.so <nate@buster.so>
- Add hideThreeDotMenu optional boolean prop to IColorTheme interface
- Update ThemeList component to check admin status and hideThreeDotMenu prop before showing three dot menu
- Set hideThreeDotMenu: false for userConfig organization themes and true for dictionary themes in ColorsApp
- Create reusable useThemeOperations hook for theme operations (onCreateCustomTheme, onDeleteCustomTheme, onModifyCustomTheme, onSelectTheme)
- Update DefaultThemeSelector to use the new hook
- Wrap EditCustomThemeMenu with AddThemeProviderWrapper in ColorsApp
Co-Authored-By: nate@buster.so <nate@buster.so>
- Introduced `count_workspace_members` utility function to retrieve the number of active users in a workspace.
- Updated chat, collection, dashboard, and metric handlers to include `workspace_member_count` in their responses.
- Modified relevant types to accommodate the new `workspace_member_count` field.
- Adjusted frontend components to display the number of workspace members in the ShareMenu and related UI elements.
These changes improve the visibility of workspace member information and enhance the overall user experience.
- Adjusted the ShareMenu component styles for improved layout consistency.
- Added `workspace_sharing` property with a default value of 'none' in metric-related mocks and tests.
- Updated the mock dashboard to include the new `workspace_sharing` field.
These changes improve the UI and ensure that the workspace sharing feature is properly represented in the mock data.
- Updated the `WorkspaceSharing` enum to use camelCase for serialization.
- Introduced `workspace_permissions` field in update requests for chats, collections, dashboards, and metrics.
- Implemented handling of workspace sharing permissions in respective update handlers, allowing for setting and removing permissions.
- Adjusted frontend components and API interfaces to align with the new `workspace_sharing` naming convention.
This change enhances the consistency and usability of workspace sharing across different asset types.