Skip to content
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

161 UI new table and data table component #162

Merged
merged 47 commits into from
Nov 20, 2023

Conversation

sebpalluel
Copy link
Contributor

@sebpalluel sebpalluel commented Nov 17, 2023

PR Type:

Refactoring


PR Description:

This PR includes several updates to the GraphQL schemas and UI components:

  • The 'Entity' interface has been implemented in several GraphQL types including 'Asset', 'Event', 'EventPass', 'Organizer', 'ScheduledOperation', 'ScheduledRelease', and 'User'.
  • The 'eventDateLocation' field in the 'PassOption' type has been made optional.
  • The 'getTranslator' function in the 'EventPassesCart.tsx' file has been replaced with 'getTranslations'.
  • Several import statements have been updated for better compatibility.
  • Unused dependencies and import statements have been removed for improved code cleanliness and readability.

PR Main Files Walkthrough:

files:
  • libs/gql/shared/types/src/generated/index.ts: The 'Entity' interface has been implemented in several GraphQL types including 'Asset', 'Event', 'EventPass', 'Organizer', 'ScheduledOperation', 'ScheduledRelease', and 'User'. The 'eventDateLocation' field in the 'PassOption' type has been made optional.
  • libs/features/cart/src/lib/EventPassesCart/EventPassesCart.tsx: The 'getTranslator' function has been replaced with 'getTranslations'.
  • apps/back-office/app/[locale]/layout.tsx: Import statements have been updated for better compatibility.
  • apps/web/app/[locale]/layout.tsx: Import statements have been updated for better compatibility.
  • libs/ui/components/src/index.ts: Unused import statements have been removed for improved code cleanliness and readability.
  • apps/back-office/app/global-error.tsx: Unused import statements have been removed for improved code cleanliness and readability.
  • apps/web/app/global-error.tsx: Unused import statements have been removed for improved code cleanliness and readability.
  • apps/back-office/next.config.js: The '@features/navigation' feature has been added to the list of features.
  • apps/web/next.config.js: The '@features/navigation' feature has been added to the list of features.
  • pnpm-lock.yaml: The 'next' package has been updated to the 'canary' version and the 'next-intl'

…_JWT environment variable to actual newline characters for proper formatting
…atures in next.config.js files

🚀 feat(package.json): update 'next' package to 'canary' version for better compatibility with other dependencies
🚀 feat(package.json): update 'next-intl' package to version 3.0.1 for bug fixes and improvements
🔥 chore(package.json): remove unused dependency '@opentelemetry/api' from package.json
…ments to improve code cleanliness and readability

🔧 chore(global-error.tsx): remove unused import to improve code cleanliness and readability
🔧 chore(ErrorClient.tsx): comment out Alert component to fix breaking issue in next apps
🔧 chore(ErrorClient.tsx): refactor Alert component to a div to fix breaking issue in next apps
…s caused by incorrect import paths

✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(page.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(page.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(EventPassesCart.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(EventPassesCart.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(PassCardSelect.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(PassCardSelect.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(PassTotal.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(PassTotal.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(DateRangeServer.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(DateRangeServer.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(nextIntlServer.mock.js): rename getTranslator function to getTranslations to match the actual implementation
…office and web apps

🔥 refactor(error.tsx): remove unused Error component from back-office app
✨ feat(not-found.tsx): add NotFound component to back-office and web apps to handle 404 errors
🔨 refactor(EventOrganizerButton.tsx): remove Link and Button components from EventOrganizerButton to simplify the code and improve performance
…ort error

🔧 fix(next.config.js): remove experimental.serverActions flag to fix build error
🔧 fix(layout.tsx): uncomment viewport constant to enable theme color customization
🔧 fix(next.config.js): remove experimental.serverActions flag to fix build error
🔧 fix(PassCardSelectClient.tsx): remove unused import and updateEventPassCart parameter to fix build error
…nt to provide uploader functionality

🔧 fix(layout.tsx): remove redundant UploaderProvider wrapping in RootLayout component
…to ensure correct initial value in Select component

🐛 fix(SelectItems.tsx): remove unnecessary object destructuring in map function to improve code readability
…re no events

- Added a new component `NoEventsPlaceholder` in the `molecules` directory to display a placeholder when there are no events.
- Updated the `OrganizerEvents` component to use the `NoEventsPlaceholder` component when there are no events.
- Added a new prop `noEventsImage` to the `OrganizerEvents` component to specify the image to be displayed in the placeholder.
- Added a new prop `noEventsText` to the `OrganizerEvents` component to specify the text to be displayed in the placeholder.
- Updated the `page.tsx` file to pass the `noEventsImage` and `noEventsText` props to the `OrganizerEvents` component.

🌐 feat(i18n): add translation for "no-events" in OrganizerEvents namespace

- Added translation for the key "no-events" in the `OrganizerEvents` namespace in the `en.json` and `fr.json` files.

✨ feat(next-intl): add support for fetching translations in the `OrganizerEvents` namespace

- Imported the `getTranslations` function from `next-intl/server` in the `page.tsx` file.
- Added a new variable `t` to fetch the translations for the `OrganizerEvents` namespace.
- Updated the `noEventsText` prop in the `OrganizerEvents` component to use the translated value for "no-events".
🚀 feat(ui/components): add TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, and TableCaption components to the Table component

🚀 feat(ui/components): add TableExample component to showcase the usage of the Table component in Storybook
…e a faceted filtering functionality to data tables

🚀 feat(ui/components): add DataTableColumnHeader component to display column headers in data tables with sorting and visibility controls
🔧 chore(package.json): add @radix-ui/react-icons and @tanstack/react-table as dependencies
…agination functionality to data tables

🚀 feat(ui/components): add DataTableRowActions component to provide row actions functionality to data tables
…de a toolbar for data tables

🆕 feat(DataTableViewOptions.tsx): add DataTableViewOptions component to provide options for viewing and toggling columns in data tables
…prevent rendering when eventPassPricing is null or undefined

🆕 feat(formatCurrency.spec.ts): add unit tests for formatCurrency function
🔨 refactor(formatCurrency.ts): use default values for currency and amount if not provided, add error logging when rates is not provided
… Event, EventPass, Organizer, ScheduledOperation, ScheduledRelease, and User types

✨ feat(schema): update EntityTypeName enum description to include models and components
✨ feat(schema): update EntityWhereInput input description to include models and components
✨ feat(schema): update Event type to implement Entity interface
✨ feat(schema): update EventPass type to implement Entity interface
✨ feat(schema): update Organizer type to implement Entity interface
✨ feat(schema): update ScheduledOperation type to implement Entity interface
✨ feat(schema): update ScheduledRelease type to implement Entity interface
✨ feat(schema): update User type to implement Entity interface
…tion return type in PassOption

🐛 fix(schema): remove unnecessary exclamation mark from EventDateLocation input type in PassOptionCreateInput
🐛 fix(types): make eventDateLocation field optional in EventPassFieldsFragment
🐛 fix(types): make eventDateLocation field optional in EventPassNftFieldsFragment
This commit adds a new DataTable component to the UI components library. The DataTable component is a customizable table component that supports features like column visibility, column filtering, sorting, row selection, pagination, and toolbar.

The DataTable component accepts the following props:
- columns: an array of column definitions
- data: an array of data to be displayed in the table
- showHeader: a boolean flag to determine whether to show the table header (default is true)
- enableRowSelection: a boolean flag to enable row selection (default is false)
- toolbarProps: additional props for the DataTableToolbar component
- paginationProps: additional props for the DataTablePagination component
- noResultsText: text to display when there are no results to show in the table

The DataTable component uses the @tanstack/react-table library for handling table functionality and rendering. It provides hooks and state management for handling sorting, filtering, pagination, and row selection.

The DataTable component renders a Table component from the UI components library, with the table header and body generated based on the provided columns and data. If there are no results to show, a message is displayed in the table body.

This new component will be useful for displaying tabular data in various applications.
…taTable component

🐛 fix(DataTableRowActions): remove unused import and remove unused row prop from DataTableRowActions component
📦 chore(DataTable): add columns.tsx file to define the columns for the DataTable component
📦 chore(DataTable): add data.tsx file to provide example data for the DataTable component
📦 chore(DataTable): add schema.ts file to define the schema for the example data in the DataTable component
📦 chore(DataTable): add tasks.tsx file to provide example tasks data for the DataTable component
📝 docs(tsconfig): exclude examples files from the build and test process
… to improve code readability and maintainability

🔨 refactor(DropdownMenuActions.tsx): remove unused imports and fix import paths to improve code cleanliness
🔨 refactor(DropdownMenuItemClient.tsx): add missing value property to MenuItem interface to improve type safety
🔨 refactor(DropdownMenuItems.stories.tsx): remove unused imports and fix import paths to improve code cleanliness
🔨 refactor(DropdownMenuItems.tsx): add align prop to DropdownMenuContent and valueChanged prop to DropdownMenuItemsProps to improve flexibility and customization
…imports to improve code readability and maintainability

🔨 refactor(Button.tsx): reorganize imports and remove unused imports to improve code readability and maintainability
🔨 refactor(Command.tsx): reorganize imports and remove unused imports to improve code readability and maintainability
…in options array to improve semantics

🐛 fix(DataTableFacetedFilter.tsx): rename 'label' variable to 'text' in Badge component to improve semantics
🐛 fix(DataTableFacetedFilter.tsx): add 'h-8' class to CommandInput component to fix height issue
🐛 fix(DataTableFacetedFilter.tsx): rename 'label' variable to 'text' in option rendering to improve semantics
🐛 fix(DataTableRowActions.tsx): add useState import to fix missing import error
🐛 fix(DataTableRowActions.tsx): add loading state and setLoading function to fix loading state issue
🐛 fix(DataTableRowActions.tsx): add isLoading and helperText props to Button component to fix loading state issue
🐛 fix(DataTableRowActions.tsx): add size prop to Button component to fix size issue
🐛 fix(DataTableRowActions.tsx): remove unused controlText prop from DataTableRowActions component
🐛 fix(DataTableToolbar.tsx): add OutlineSearch icon to Input component to fix missing icon issue
🐛 fix(DataTableToolbar.tsx): add searchProps prop to enable search functionality
🐛 fix(DataTableToolbar.tsx): rename enableSearch prop to searchProps and update its type to SearchProps to improve semantics
🐛 fix(DataTableToolbar.tsx): update filtersConfig type to Omit<FilterConfig<TData, any>, 'controlText'>[] to improve semantics
…el and status text properties

✨ feat(DataTable.stories.tsx): add new stories for DataTable with pagination, toolbar search, and toolbar filters
🐛 fix(columns.tsx): fix label and status text properties
…story to simulate user interaction with sorting feature

🚀 feat(DataTable.stories.tsx): add play function to DataTableWithToolbarToggleColumns story to simulate user interaction with toggle columns feature
@sebpalluel sebpalluel linked an issue Nov 17, 2023 that may be closed by this pull request
Copy link

vercel bot commented Nov 17, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
back-office ✅ Ready (Inspect) Visit Preview 💬 Add feedback Nov 20, 2023 2:41pm
1 Ignored Deployment
Name Status Preview Comments Updated (UTC)
marketplace ⬜️ Ignored (Inspect) Visit Preview Nov 20, 2023 2:41pm

…d_space_size=4096' value to increase memory limit for Node.js processes during CI

🔧 chore(staging-apps.yml): add NODE_OPTIONS environment variable with '--max_old_space_size=4096' value to increase memory limit for Node.js processes during staging app deployment
Copy link

Neon branch 🐘 : https://console.neon.tech/app/projects/rapid-band-79592955/branches/ Hasura Console 💻 :

…nd language features support

🆕 feat(.swcrc): add .swcrc configuration file for new project libs/features/back-office/roles-actions
🔄 chore(project.json): change build executor to @nx/js:swc for improved build performance
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
…liness and maintainability

🔧 chore(project.json): fix outputPath typo in event-api project to ensure correct build output location
🔧 chore(package.json): remove unnecessary dependencies and configuration in common package
🔧 chore(.swcrc): add strict and noInterop options to improve code quality and maintainability
🔧 chore(package.json): remove unnecessary dependencies and configuration in types package
🔧 chore(tsconfig.json): remove unnecessary compiler options in types tsconfig
🔧 chore(nx.json): add analyzeSourceFiles option to @nx/rollup plugin configuration
…orkflow for authentication

🔧 chore(ci.yml): add NX_CLOUD_AUTH_TOKEN secret to CI workflow for authentication
🗑️ chore(roles-actions): remove unused .swcrc configuration file
🔧 chore(roles-actions): update jest.config.ts to remove @swc/jest transformer
🔧 chore(roles-actions): update project.json to use @nx/rollup:rollup executor and swc compiler
@sebpalluel sebpalluel merged commit c048139 into staging Nov 20, 2023
6 of 13 checks passed
@sebpalluel sebpalluel deleted the 161-ui-new-table-and-data-table-component branch November 20, 2023 15:08
AlexandreG-tech pushed a commit that referenced this pull request Nov 21, 2023
* 🐛 fix(index.mjs): replace escaped newline characters in UPLOAD_SECRET_JWT environment variable to actual newline characters for proper formatting

* 🔧 chore(next.config.js): add '@features/navigation' to the list of features in next.config.js files
🚀 feat(package.json): update 'next' package to 'canary' version for better compatibility with other dependencies
🚀 feat(package.json): update 'next-intl' package to version 3.0.1 for bug fixes and improvements
🔥 chore(package.json): remove unused dependency '@opentelemetry/api' from package.json

* 🔧 chore(global-error.tsx): remove unused import and console.log statements to improve code cleanliness and readability
🔧 chore(global-error.tsx): remove unused import to improve code cleanliness and readability
🔧 chore(ErrorClient.tsx): comment out Alert component to fix breaking issue in next apps
🔧 chore(ErrorClient.tsx): refactor Alert component to a div to fix breaking issue in next apps

* 🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(page.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(page.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(EventPassesCart.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(EventPassesCart.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(PassCardSelect.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(PassCardSelect.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(PassTotal.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(PassTotal.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(DateRangeServer.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(DateRangeServer.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(nextIntlServer.mock.js): rename getTranslator function to getTranslations to match the actual implementation

* 🔥 refactor(page.tsx): remove unused CatchAllPage component from back-office and web apps
🔥 refactor(error.tsx): remove unused Error component from back-office app
✨ feat(not-found.tsx): add NotFound component to back-office and web apps to handle 404 errors
🔨 refactor(EventOrganizerButton.tsx): remove Link and Button components from EventOrganizerButton to simplify the code and improve performance

* 🔧 fix(layout.tsx): import Viewport from 'next' to resolve missing import error
🔧 fix(next.config.js): remove experimental.serverActions flag to fix build error
🔧 fix(layout.tsx): uncomment viewport constant to enable theme color customization
🔧 fix(next.config.js): remove experimental.serverActions flag to fix build error
🔧 fix(PassCardSelectClient.tsx): remove unused import and updateEventPassCart parameter to fix build error

* 🔧 fix(page.tsx): add UploaderProvider to wrap OrganizerEvents component to provide uploader functionality
🔧 fix(layout.tsx): remove redundant UploaderProvider wrapping in RootLayout component

* 🐛 fix(MenuNavMobile.tsx): set defaultValue based on current pathname to ensure correct initial value in Select component
🐛 fix(SelectItems.tsx): remove unnecessary object destructuring in map function to improve code readability

* 🚀 feat(events): add support for displaying a placeholder when there are no events

- Added a new component `NoEventsPlaceholder` in the `molecules` directory to display a placeholder when there are no events.
- Updated the `OrganizerEvents` component to use the `NoEventsPlaceholder` component when there are no events.
- Added a new prop `noEventsImage` to the `OrganizerEvents` component to specify the image to be displayed in the placeholder.
- Added a new prop `noEventsText` to the `OrganizerEvents` component to specify the text to be displayed in the placeholder.
- Updated the `page.tsx` file to pass the `noEventsImage` and `noEventsText` props to the `OrganizerEvents` component.

🌐 feat(i18n): add translation for "no-events" in OrganizerEvents namespace

- Added translation for the key "no-events" in the `OrganizerEvents` namespace in the `en.json` and `fr.json` files.

✨ feat(next-intl): add support for fetching translations in the `OrganizerEvents` namespace

- Imported the `getTranslations` function from `next-intl/server` in the `page.tsx` file.
- Added a new variable `t` to fetch the translations for the `OrganizerEvents` namespace.
- Updated the `noEventsText` prop in the `OrganizerEvents` component to use the translated value for "no-events".

* 🚀 feat(ui/components): add Table component to the UI library

🚀 feat(ui/components): add TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, and TableCaption components to the Table component

🚀 feat(ui/components): add TableExample component to showcase the usage of the Table component in Storybook

* 🚀 feat(ui/components): add DataTableFacetedFilter component to provide a faceted filtering functionality to data tables
🚀 feat(ui/components): add DataTableColumnHeader component to display column headers in data tables with sorting and visibility controls
🔧 chore(package.json): add @radix-ui/react-icons and @tanstack/react-table as dependencies

* 🚀 feat(ui/components): add DataTablePagination component to provide pagination functionality to data tables
🚀 feat(ui/components): add DataTableRowActions component to provide row actions functionality to data tables

* 🆕 feat(DataTableToolbar.tsx): add DataTableToolbar component to provide a toolbar for data tables
🆕 feat(DataTableViewOptions.tsx): add DataTableViewOptions component to provide options for viewing and toggling columns in data tables

* 🐛 fix(PassCard.tsx): move CardFooter inside conditional rendering to prevent rendering when eventPassPricing is null or undefined
🆕 feat(formatCurrency.spec.ts): add unit tests for formatCurrency function
🔨 refactor(formatCurrency.ts): use default values for currency and amount if not provided, add error logging when rates is not provided

* 🐛 fix(schema): update schema to implement Entity interface for Asset, Event, EventPass, Organizer, ScheduledOperation, ScheduledRelease, and User types
✨ feat(schema): update EntityTypeName enum description to include models and components
✨ feat(schema): update EntityWhereInput input description to include models and components
✨ feat(schema): update Event type to implement Entity interface
✨ feat(schema): update EventPass type to implement Entity interface
✨ feat(schema): update Organizer type to implement Entity interface
✨ feat(schema): update ScheduledOperation type to implement Entity interface
✨ feat(schema): update ScheduledRelease type to implement Entity interface
✨ feat(schema): update User type to implement Entity interface

* 🐛 fix(schema): remove unnecessary exclamation mark from EventDateLocation return type in PassOption
🐛 fix(schema): remove unnecessary exclamation mark from EventDateLocation input type in PassOptionCreateInput
🐛 fix(types): make eventDateLocation field optional in EventPassFieldsFragment
🐛 fix(types): make eventDateLocation field optional in EventPassNftFieldsFragment

* 🎉 feat(DataTable): add DataTable component to the UI components library

This commit adds a new DataTable component to the UI components library. The DataTable component is a customizable table component that supports features like column visibility, column filtering, sorting, row selection, pagination, and toolbar.

The DataTable component accepts the following props:
- columns: an array of column definitions
- data: an array of data to be displayed in the table
- showHeader: a boolean flag to determine whether to show the table header (default is true)
- enableRowSelection: a boolean flag to enable row selection (default is false)
- toolbarProps: additional props for the DataTableToolbar component
- paginationProps: additional props for the DataTablePagination component
- noResultsText: text to display when there are no results to show in the table

The DataTable component uses the @tanstack/react-table library for handling table functionality and rendering. It provides hooks and state management for handling sorting, filtering, pagination, and row selection.

The DataTable component renders a Table component from the UI components library, with the table header and body generated based on the provided columns and data. If there are no results to show, a message is displayed in the table body.

This new component will be useful for displaying tabular data in various applications.

* 📦 chore(DataTable): add DataTable.stories.tsx file to showcase the DataTable component
🐛 fix(DataTableRowActions): remove unused import and remove unused row prop from DataTableRowActions component
📦 chore(DataTable): add columns.tsx file to define the columns for the DataTable component
📦 chore(DataTable): add data.tsx file to provide example data for the DataTable component
📦 chore(DataTable): add schema.ts file to define the schema for the example data in the DataTable component
📦 chore(DataTable): add tasks.tsx file to provide example tasks data for the DataTable component
📝 docs(tsconfig): exclude examples files from the build and test process

* 🔨 refactor(DropdownMenu.tsx): reorganize imports and fix import paths to improve code readability and maintainability
🔨 refactor(DropdownMenuActions.tsx): remove unused imports and fix import paths to improve code cleanliness
🔨 refactor(DropdownMenuItemClient.tsx): add missing value property to MenuItem interface to improve type safety
🔨 refactor(DropdownMenuItems.stories.tsx): remove unused imports and fix import paths to improve code cleanliness
🔨 refactor(DropdownMenuItems.tsx): add align prop to DropdownMenuContent and valueChanged prop to DropdownMenuItemsProps to improve flexibility and customization

* 🔨 refactor(Button.stories.tsx): reorganize imports and remove unused imports to improve code readability and maintainability
🔨 refactor(Button.tsx): reorganize imports and remove unused imports to improve code readability and maintainability
🔨 refactor(Command.tsx): reorganize imports and remove unused imports to improve code readability and maintainability

* 🐛 fix(DataTableFacetedFilter.tsx): rename 'label' property to 'text' in options array to improve semantics
🐛 fix(DataTableFacetedFilter.tsx): rename 'label' variable to 'text' in Badge component to improve semantics
🐛 fix(DataTableFacetedFilter.tsx): add 'h-8' class to CommandInput component to fix height issue
🐛 fix(DataTableFacetedFilter.tsx): rename 'label' variable to 'text' in option rendering to improve semantics
🐛 fix(DataTableRowActions.tsx): add useState import to fix missing import error
🐛 fix(DataTableRowActions.tsx): add loading state and setLoading function to fix loading state issue
🐛 fix(DataTableRowActions.tsx): add isLoading and helperText props to Button component to fix loading state issue
🐛 fix(DataTableRowActions.tsx): add size prop to Button component to fix size issue
🐛 fix(DataTableRowActions.tsx): remove unused controlText prop from DataTableRowActions component
🐛 fix(DataTableToolbar.tsx): add OutlineSearch icon to Input component to fix missing icon issue
🐛 fix(DataTableToolbar.tsx): add searchProps prop to enable search functionality
🐛 fix(DataTableToolbar.tsx): rename enableSearch prop to searchProps and update its type to SearchProps to improve semantics
🐛 fix(DataTableToolbar.tsx): update filtersConfig type to Omit<FilterConfig<TData, any>, 'controlText'>[] to improve semantics

* 🐛 fix(DataTable.stories.tsx): import missing dependencies and fix label and status text properties
✨ feat(DataTable.stories.tsx): add new stories for DataTable with pagination, toolbar search, and toolbar filters
🐛 fix(columns.tsx): fix label and status text properties

* 🚀 feat(DataTable.stories.tsx): add play function to DefaultDataTable story to simulate user interaction with sorting feature
🚀 feat(DataTable.stories.tsx): add play function to DataTableWithToolbarToggleColumns story to simulate user interaction with toggle columns feature

* ⬆️ chore(package.json): update next package version to ^14.0.3 for compatibility and stability improvements

* 🐛 fix(ConvertedCurrency.tsx): pass locale as an object to getFormatter function to improve readability and maintainability
🐛 fix(DateRangeServer.tsx): pass locale as an object to getTimeZone and getFormatter functions to improve readability and maintainability
🐛 fix(nextIntlServer.mock.js): pass locale as an object to getFormatter function to improve readability and maintainability

* 🔨 refactor(nextIntlServer.mock.js): remove unnecessary type annotation in getFormatter function signature to improve code readability

* 🐛 fix(DataTable.stories.tsx): update click event to wait for button to be found by role name 'view' to improve reliability and avoid potential race condition

🐛 fix(DropdownMenuItems.stories.tsx): update click event to hover over text 'Labels' before finding text 'Radio 1' to ensure proper interaction with dropdown menu

* 🔧 chore(ci.yml): refactor parallel commands in CI workflow to use a single command for affected tasks
🔧 chore(package.json): update affected:parallel-ci script to run lint, test, and build tasks in parallel with 3 workers

* 🔧 chore(event-actions): export UpdateEventPassCartProps type from updateEventPassCart module
🔧 chore(PassCardSelect): remove unused import of updateEventPassCart from event-actions module
🔧 chore(PassCardSelectClient): remove unused updateEventPassCart prop
🔧 chore(PassOptions): add conditional rendering for EventDatesServer and EventLocations components based on eventDateLocation prop

* 🔧 chore(env): remove NX_CLOUD_AUTH_TOKEN from env validation to align with current project configuration
🔧 chore(jest.config.ts): remove unnecessary transform configuration to improve build performance
🔧 chore(EventHero.spec.tsx): remove TODO comment and mock EventDatesServer component to fix test
🔧 chore(PassCard.spec.tsx): remove unused test file
🔧 chore(PassList.spec.tsx): remove unused test file
🔧 chore(PassPurchase.spec.tsx): remove unused test file
🔧 chore(PassPurchaseSheetContainer.spec.tsx): remove unused test file
🔧 chore(nextIntlServer.mock.js): update getTranslations function signature to match the latest version of next-intl
🔧 chore(index.d.ts): remove NX_CLOUD_AUTH_TOKEN from environment variable types to align with current project configuration

* 🎨 style(AppNavLayoutDesktop.tsx): update header styles for better visual consistency and readability
🎨 style(Logo.tsx): update SVG component props to improve customization options
🎨 style(NavLink.tsx): add 'bg-transparent' class to NavLink component for better background styling
🎨 style(AppNavLayoutDesktop.tsx): update header styles for better visual consistency and readability in back-office app

* 🔨 refactor(index.ts): remove unused CardOverlay component from exports
🔨 refactor(Card.tsx): remove unused CardOverlay component
🔨 refactor(examples.tsx): remove usage of CardOverlay component

* 🔨 refactor(EventCards.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(CartCancelled.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(CartSuccessful.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(NoUserCart.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(UserCart.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(PassFooterCardClient.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(Event.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(NoUserPass.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(SinglePass.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(Settings.tsx): remove unused CardOverlay component to improve code readability

* 🔧 fix(AppNavLayout.tsx): remove unnecessary padding-bottom on mobile view to improve layout consistency
🔧 fix(AppNavLayoutMobile.tsx): remove unnecessary md:hidden class on navigation menu items to improve responsiveness

* 🐛 fix(AppNavLayout.tsx): add overflow-hidden to prevent content overflow on smaller screens
✨ feat(AppNavLayout.tsx): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(AppNavLayoutMobile.tsx): add flex to fix layout issue on mobile screens
🐛 fix(SinglePass.tsx): add variant prop to CardContent to handle sticky footer behavior
🐛 fix(Card.tsx): adjust sticky footer styles to fix layout issue on smaller screens

* 🔧 fix(SinglePass.tsx): add isMain prop to CardContent component to customize styling based on its value
🔧 fix(Card.tsx): add support for isMain prop in CardContent component to apply different styling when isMain is true and variant is stickyFooter

* 🔧 fix(AppNavLayoutDesktop.tsx): change header positioning to absolute instead of sticky to fix layout issue
🔧 fix(UserPass.tsx): change Card variant class name from stickyFooter to mb-16 to fix layout issue
🔧 fix(Card.tsx): adjust styling for sticky footer variant to fix layout issue

* 🔨 refactor(app-nav): move AppContainer, AppContainerFooter, and AppContainerOverflow components to app-nav library for reusability and better organization

🔨 refactor(event): update imports to use components from the app-nav library instead of the ui/components library for consistency and better code organization

🔨 refactor(event): replace Card, CardHeader, CardOverflow, and CardFooter components with AppContainer, AppContainerOverflow, and AppContainerFooter components for a more semantic and consistent layout structure

* 🔧 chore(AppContainer.tsx): simplify AppContainer component by removing unnecessary variant prop and using inline styles directly
🔧 chore(AppContainer.tsx): simplify AppContainerOverflow component by removing unnecessary variant prop and using inline styles directly
🔧 chore(Event.tsx): remove variant prop from AppContainer component and AppContainerOverflow component as it is not needed
🔧 chore(SinglePass.tsx): remove variant prop from Card component and CardOverflow component and replace them with AppContainer and AppContainerOverflow components for better consistency and code reuse
🔧 chore(SinglePassSkeleton.tsx): remove variant prop from Card component and CardOverflow component and replace them with AppContainer and AppContainerOverflow components for better consistency and code reuse

* 🎨 style(CartCancelled.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(CartSuccessful.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(NoUserCart.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(UserCart.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(ErrorClient.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(NotFound.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability

* 🔨 refactor(NoUserPass.tsx): replace Card component with AppContainer, AppContainerFooter, and AppContainerOverflow components for better code organization and consistency
🔨 refactor(UserPass.tsx): replace Card component with AppContainer component for better code organization and consistency

* 🐛 fix(layout.tsx): rename textMintingOrders to textMintingOrdersBadge for better clarity and semantics
🐛 fix(UserPass.stories.tsx): add eventParameters2 to eventsParameters array to fix a bug
🐛 fix(UserPass.tsx): replace Alert component with Badge component for displaying textMintingOrdersBadge
🐛 fix(examples.tsx): rename textMintingOrders to textMintingOrdersBadge for better clarity and semantics
🐛 fix(en.json): update minting-success-message-badge translation to match the new text in the code
🐛 fix(fr.json): update minting-success-message-badge translation to match the new text in the code

* 🔧 fix(cart/page.tsx): add block and className to Button component to improve styling and layout
🗑️ chore(error.tsx): remove unused error component
🔧 fix(purchase/layout.tsx): replace Card component with AppContainer component to improve layout and styling
🔧 fix(AppContainer.tsx): add h-full class to improve layout and ensure full height
🔧 fix(SumsubButton.tsx): add block and className to Button component to improve styling and layout
🔧 fix(PassFooterCardClient.tsx): replace CardFooter component with AppContainerFooter component to improve layout and styling
🔧 fix(Event.tsx): replace CardFooter component with AppContainerFooter component to improve layout and styling
🔧 fix(PassPurchaseCard.tsx): replace CardOverflow component with AppContainerOverflow component to improve layout and styling
🔧 fix(CardNavBack.tsx): add className to Button component to hide on small screens

* 🔧 chore(ci.yml): add NODE_OPTIONS environment variable with '--max_old_space_size=4096' value to increase memory limit for Node.js processes during CI
🔧 chore(staging-apps.yml): add NODE_OPTIONS environment variable with '--max_old_space_size=4096' value to increase memory limit for Node.js processes during staging app deployment

* 🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🆕 feat(.swcrc): add .swcrc configuration file for new project libs/features/back-office/roles-actions
🔄 chore(project.json): change build executor to @nx/js:swc for improved build performance
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support

* 🔧 chore(SumsubDialog.tsx): remove unused import to improve code cleanliness and maintainability
🔧 chore(project.json): fix outputPath typo in event-api project to ensure correct build output location
🔧 chore(package.json): remove unnecessary dependencies and configuration in common package
🔧 chore(.swcrc): add strict and noInterop options to improve code quality and maintainability
🔧 chore(package.json): remove unnecessary dependencies and configuration in types package
🔧 chore(tsconfig.json): remove unnecessary compiler options in types tsconfig
🔧 chore(nx.json): add analyzeSourceFiles option to @nx/rollup plugin configuration

* 🔧 chore(ci.yml): add NX_CLOUD_AUTH_TOKEN environment variable to CI workflow for authentication
🔧 chore(ci.yml): add NX_CLOUD_AUTH_TOKEN secret to CI workflow for authentication
🗑️ chore(roles-actions): remove unused .swcrc configuration file
🔧 chore(roles-actions): update jest.config.ts to remove @swc/jest transformer
🔧 chore(roles-actions): update project.json to use @nx/rollup:rollup executor and swc compiler
AlexandreG-tech pushed a commit that referenced this pull request Nov 21, 2023
* 🐛 fix(index.mjs): replace escaped newline characters in UPLOAD_SECRET_JWT environment variable to actual newline characters for proper formatting

* 🔧 chore(next.config.js): add '@features/navigation' to the list of features in next.config.js files
🚀 feat(package.json): update 'next' package to 'canary' version for better compatibility with other dependencies
🚀 feat(package.json): update 'next-intl' package to version 3.0.1 for bug fixes and improvements
🔥 chore(package.json): remove unused dependency '@opentelemetry/api' from package.json

* 🔧 chore(global-error.tsx): remove unused import and console.log statements to improve code cleanliness and readability
🔧 chore(global-error.tsx): remove unused import to improve code cleanliness and readability
🔧 chore(ErrorClient.tsx): comment out Alert component to fix breaking issue in next apps
🔧 chore(ErrorClient.tsx): refactor Alert component to a div to fix breaking issue in next apps

* 🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(page.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(page.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(EventPassesCart.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(EventPassesCart.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(PassCardSelect.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(PassCardSelect.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(PassTotal.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(PassTotal.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(DateRangeServer.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(DateRangeServer.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(nextIntlServer.mock.js): rename getTranslator function to getTranslations to match the actual implementation

* 🔥 refactor(page.tsx): remove unused CatchAllPage component from back-office and web apps
🔥 refactor(error.tsx): remove unused Error component from back-office app
✨ feat(not-found.tsx): add NotFound component to back-office and web apps to handle 404 errors
🔨 refactor(EventOrganizerButton.tsx): remove Link and Button components from EventOrganizerButton to simplify the code and improve performance

* 🔧 fix(layout.tsx): import Viewport from 'next' to resolve missing import error
🔧 fix(next.config.js): remove experimental.serverActions flag to fix build error
🔧 fix(layout.tsx): uncomment viewport constant to enable theme color customization
🔧 fix(next.config.js): remove experimental.serverActions flag to fix build error
🔧 fix(PassCardSelectClient.tsx): remove unused import and updateEventPassCart parameter to fix build error

* 🔧 fix(page.tsx): add UploaderProvider to wrap OrganizerEvents component to provide uploader functionality
🔧 fix(layout.tsx): remove redundant UploaderProvider wrapping in RootLayout component

* 🐛 fix(MenuNavMobile.tsx): set defaultValue based on current pathname to ensure correct initial value in Select component
🐛 fix(SelectItems.tsx): remove unnecessary object destructuring in map function to improve code readability

* 🚀 feat(events): add support for displaying a placeholder when there are no events

- Added a new component `NoEventsPlaceholder` in the `molecules` directory to display a placeholder when there are no events.
- Updated the `OrganizerEvents` component to use the `NoEventsPlaceholder` component when there are no events.
- Added a new prop `noEventsImage` to the `OrganizerEvents` component to specify the image to be displayed in the placeholder.
- Added a new prop `noEventsText` to the `OrganizerEvents` component to specify the text to be displayed in the placeholder.
- Updated the `page.tsx` file to pass the `noEventsImage` and `noEventsText` props to the `OrganizerEvents` component.

🌐 feat(i18n): add translation for "no-events" in OrganizerEvents namespace

- Added translation for the key "no-events" in the `OrganizerEvents` namespace in the `en.json` and `fr.json` files.

✨ feat(next-intl): add support for fetching translations in the `OrganizerEvents` namespace

- Imported the `getTranslations` function from `next-intl/server` in the `page.tsx` file.
- Added a new variable `t` to fetch the translations for the `OrganizerEvents` namespace.
- Updated the `noEventsText` prop in the `OrganizerEvents` component to use the translated value for "no-events".

* 🚀 feat(ui/components): add Table component to the UI library

🚀 feat(ui/components): add TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, and TableCaption components to the Table component

🚀 feat(ui/components): add TableExample component to showcase the usage of the Table component in Storybook

* 🚀 feat(ui/components): add DataTableFacetedFilter component to provide a faceted filtering functionality to data tables
🚀 feat(ui/components): add DataTableColumnHeader component to display column headers in data tables with sorting and visibility controls
🔧 chore(package.json): add @radix-ui/react-icons and @tanstack/react-table as dependencies

* 🚀 feat(ui/components): add DataTablePagination component to provide pagination functionality to data tables
🚀 feat(ui/components): add DataTableRowActions component to provide row actions functionality to data tables

* 🆕 feat(DataTableToolbar.tsx): add DataTableToolbar component to provide a toolbar for data tables
🆕 feat(DataTableViewOptions.tsx): add DataTableViewOptions component to provide options for viewing and toggling columns in data tables

* 🐛 fix(PassCard.tsx): move CardFooter inside conditional rendering to prevent rendering when eventPassPricing is null or undefined
🆕 feat(formatCurrency.spec.ts): add unit tests for formatCurrency function
🔨 refactor(formatCurrency.ts): use default values for currency and amount if not provided, add error logging when rates is not provided

* 🐛 fix(schema): update schema to implement Entity interface for Asset, Event, EventPass, Organizer, ScheduledOperation, ScheduledRelease, and User types
✨ feat(schema): update EntityTypeName enum description to include models and components
✨ feat(schema): update EntityWhereInput input description to include models and components
✨ feat(schema): update Event type to implement Entity interface
✨ feat(schema): update EventPass type to implement Entity interface
✨ feat(schema): update Organizer type to implement Entity interface
✨ feat(schema): update ScheduledOperation type to implement Entity interface
✨ feat(schema): update ScheduledRelease type to implement Entity interface
✨ feat(schema): update User type to implement Entity interface

* 🐛 fix(schema): remove unnecessary exclamation mark from EventDateLocation return type in PassOption
🐛 fix(schema): remove unnecessary exclamation mark from EventDateLocation input type in PassOptionCreateInput
🐛 fix(types): make eventDateLocation field optional in EventPassFieldsFragment
🐛 fix(types): make eventDateLocation field optional in EventPassNftFieldsFragment

* 🎉 feat(DataTable): add DataTable component to the UI components library

This commit adds a new DataTable component to the UI components library. The DataTable component is a customizable table component that supports features like column visibility, column filtering, sorting, row selection, pagination, and toolbar.

The DataTable component accepts the following props:
- columns: an array of column definitions
- data: an array of data to be displayed in the table
- showHeader: a boolean flag to determine whether to show the table header (default is true)
- enableRowSelection: a boolean flag to enable row selection (default is false)
- toolbarProps: additional props for the DataTableToolbar component
- paginationProps: additional props for the DataTablePagination component
- noResultsText: text to display when there are no results to show in the table

The DataTable component uses the @tanstack/react-table library for handling table functionality and rendering. It provides hooks and state management for handling sorting, filtering, pagination, and row selection.

The DataTable component renders a Table component from the UI components library, with the table header and body generated based on the provided columns and data. If there are no results to show, a message is displayed in the table body.

This new component will be useful for displaying tabular data in various applications.

* 📦 chore(DataTable): add DataTable.stories.tsx file to showcase the DataTable component
🐛 fix(DataTableRowActions): remove unused import and remove unused row prop from DataTableRowActions component
📦 chore(DataTable): add columns.tsx file to define the columns for the DataTable component
📦 chore(DataTable): add data.tsx file to provide example data for the DataTable component
📦 chore(DataTable): add schema.ts file to define the schema for the example data in the DataTable component
📦 chore(DataTable): add tasks.tsx file to provide example tasks data for the DataTable component
📝 docs(tsconfig): exclude examples files from the build and test process

* 🔨 refactor(DropdownMenu.tsx): reorganize imports and fix import paths to improve code readability and maintainability
🔨 refactor(DropdownMenuActions.tsx): remove unused imports and fix import paths to improve code cleanliness
🔨 refactor(DropdownMenuItemClient.tsx): add missing value property to MenuItem interface to improve type safety
🔨 refactor(DropdownMenuItems.stories.tsx): remove unused imports and fix import paths to improve code cleanliness
🔨 refactor(DropdownMenuItems.tsx): add align prop to DropdownMenuContent and valueChanged prop to DropdownMenuItemsProps to improve flexibility and customization

* 🔨 refactor(Button.stories.tsx): reorganize imports and remove unused imports to improve code readability and maintainability
🔨 refactor(Button.tsx): reorganize imports and remove unused imports to improve code readability and maintainability
🔨 refactor(Command.tsx): reorganize imports and remove unused imports to improve code readability and maintainability

* 🐛 fix(DataTableFacetedFilter.tsx): rename 'label' property to 'text' in options array to improve semantics
🐛 fix(DataTableFacetedFilter.tsx): rename 'label' variable to 'text' in Badge component to improve semantics
🐛 fix(DataTableFacetedFilter.tsx): add 'h-8' class to CommandInput component to fix height issue
🐛 fix(DataTableFacetedFilter.tsx): rename 'label' variable to 'text' in option rendering to improve semantics
🐛 fix(DataTableRowActions.tsx): add useState import to fix missing import error
🐛 fix(DataTableRowActions.tsx): add loading state and setLoading function to fix loading state issue
🐛 fix(DataTableRowActions.tsx): add isLoading and helperText props to Button component to fix loading state issue
🐛 fix(DataTableRowActions.tsx): add size prop to Button component to fix size issue
🐛 fix(DataTableRowActions.tsx): remove unused controlText prop from DataTableRowActions component
🐛 fix(DataTableToolbar.tsx): add OutlineSearch icon to Input component to fix missing icon issue
🐛 fix(DataTableToolbar.tsx): add searchProps prop to enable search functionality
🐛 fix(DataTableToolbar.tsx): rename enableSearch prop to searchProps and update its type to SearchProps to improve semantics
🐛 fix(DataTableToolbar.tsx): update filtersConfig type to Omit<FilterConfig<TData, any>, 'controlText'>[] to improve semantics

* 🐛 fix(DataTable.stories.tsx): import missing dependencies and fix label and status text properties
✨ feat(DataTable.stories.tsx): add new stories for DataTable with pagination, toolbar search, and toolbar filters
🐛 fix(columns.tsx): fix label and status text properties

* 🚀 feat(DataTable.stories.tsx): add play function to DefaultDataTable story to simulate user interaction with sorting feature
🚀 feat(DataTable.stories.tsx): add play function to DataTableWithToolbarToggleColumns story to simulate user interaction with toggle columns feature

* ⬆️ chore(package.json): update next package version to ^14.0.3 for compatibility and stability improvements

* 🐛 fix(ConvertedCurrency.tsx): pass locale as an object to getFormatter function to improve readability and maintainability
🐛 fix(DateRangeServer.tsx): pass locale as an object to getTimeZone and getFormatter functions to improve readability and maintainability
🐛 fix(nextIntlServer.mock.js): pass locale as an object to getFormatter function to improve readability and maintainability

* 🔨 refactor(nextIntlServer.mock.js): remove unnecessary type annotation in getFormatter function signature to improve code readability

* 🐛 fix(DataTable.stories.tsx): update click event to wait for button to be found by role name 'view' to improve reliability and avoid potential race condition

🐛 fix(DropdownMenuItems.stories.tsx): update click event to hover over text 'Labels' before finding text 'Radio 1' to ensure proper interaction with dropdown menu

* 🔧 chore(ci.yml): refactor parallel commands in CI workflow to use a single command for affected tasks
🔧 chore(package.json): update affected:parallel-ci script to run lint, test, and build tasks in parallel with 3 workers

* 🔧 chore(event-actions): export UpdateEventPassCartProps type from updateEventPassCart module
🔧 chore(PassCardSelect): remove unused import of updateEventPassCart from event-actions module
🔧 chore(PassCardSelectClient): remove unused updateEventPassCart prop
🔧 chore(PassOptions): add conditional rendering for EventDatesServer and EventLocations components based on eventDateLocation prop

* 🔧 chore(env): remove NX_CLOUD_AUTH_TOKEN from env validation to align with current project configuration
🔧 chore(jest.config.ts): remove unnecessary transform configuration to improve build performance
🔧 chore(EventHero.spec.tsx): remove TODO comment and mock EventDatesServer component to fix test
🔧 chore(PassCard.spec.tsx): remove unused test file
🔧 chore(PassList.spec.tsx): remove unused test file
🔧 chore(PassPurchase.spec.tsx): remove unused test file
🔧 chore(PassPurchaseSheetContainer.spec.tsx): remove unused test file
🔧 chore(nextIntlServer.mock.js): update getTranslations function signature to match the latest version of next-intl
🔧 chore(index.d.ts): remove NX_CLOUD_AUTH_TOKEN from environment variable types to align with current project configuration

* 🎨 style(AppNavLayoutDesktop.tsx): update header styles for better visual consistency and readability
🎨 style(Logo.tsx): update SVG component props to improve customization options
🎨 style(NavLink.tsx): add 'bg-transparent' class to NavLink component for better background styling
🎨 style(AppNavLayoutDesktop.tsx): update header styles for better visual consistency and readability in back-office app

* 🔨 refactor(index.ts): remove unused CardOverlay component from exports
🔨 refactor(Card.tsx): remove unused CardOverlay component
🔨 refactor(examples.tsx): remove usage of CardOverlay component

* 🔨 refactor(EventCards.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(CartCancelled.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(CartSuccessful.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(NoUserCart.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(UserCart.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(PassFooterCardClient.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(Event.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(NoUserPass.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(SinglePass.tsx): remove unused CardOverlay component to improve code readability
🔨 refactor(Settings.tsx): remove unused CardOverlay component to improve code readability

* 🔧 fix(AppNavLayout.tsx): remove unnecessary padding-bottom on mobile view to improve layout consistency
🔧 fix(AppNavLayoutMobile.tsx): remove unnecessary md:hidden class on navigation menu items to improve responsiveness

* 🐛 fix(AppNavLayout.tsx): add overflow-hidden to prevent content overflow on smaller screens
✨ feat(AppNavLayout.tsx): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(AppNavLayoutMobile.tsx): add flex to fix layout issue on mobile screens
🐛 fix(SinglePass.tsx): add variant prop to CardContent to handle sticky footer behavior
🐛 fix(Card.tsx): adjust sticky footer styles to fix layout issue on smaller screens

* 🔧 fix(SinglePass.tsx): add isMain prop to CardContent component to customize styling based on its value
🔧 fix(Card.tsx): add support for isMain prop in CardContent component to apply different styling when isMain is true and variant is stickyFooter

* 🔧 fix(AppNavLayoutDesktop.tsx): change header positioning to absolute instead of sticky to fix layout issue
🔧 fix(UserPass.tsx): change Card variant class name from stickyFooter to mb-16 to fix layout issue
🔧 fix(Card.tsx): adjust styling for sticky footer variant to fix layout issue

* 🔨 refactor(app-nav): move AppContainer, AppContainerFooter, and AppContainerOverflow components to app-nav library for reusability and better organization

🔨 refactor(event): update imports to use components from the app-nav library instead of the ui/components library for consistency and better code organization

🔨 refactor(event): replace Card, CardHeader, CardOverflow, and CardFooter components with AppContainer, AppContainerOverflow, and AppContainerFooter components for a more semantic and consistent layout structure

* 🔧 chore(AppContainer.tsx): simplify AppContainer component by removing unnecessary variant prop and using inline styles directly
🔧 chore(AppContainer.tsx): simplify AppContainerOverflow component by removing unnecessary variant prop and using inline styles directly
🔧 chore(Event.tsx): remove variant prop from AppContainer component and AppContainerOverflow component as it is not needed
🔧 chore(SinglePass.tsx): remove variant prop from Card component and CardOverflow component and replace them with AppContainer and AppContainerOverflow components for better consistency and code reuse
🔧 chore(SinglePassSkeleton.tsx): remove variant prop from Card component and CardOverflow component and replace them with AppContainer and AppContainerOverflow components for better consistency and code reuse

* 🎨 style(CartCancelled.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(CartSuccessful.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(NoUserCart.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(UserCart.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(ErrorClient.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability
🎨 style(NotFound.tsx): refactor component structure to use AppContainer, AppContainerOverflow, and AppContainerFooter for better code organization and reusability

* 🔨 refactor(NoUserPass.tsx): replace Card component with AppContainer, AppContainerFooter, and AppContainerOverflow components for better code organization and consistency
🔨 refactor(UserPass.tsx): replace Card component with AppContainer component for better code organization and consistency

* 🐛 fix(layout.tsx): rename textMintingOrders to textMintingOrdersBadge for better clarity and semantics
🐛 fix(UserPass.stories.tsx): add eventParameters2 to eventsParameters array to fix a bug
🐛 fix(UserPass.tsx): replace Alert component with Badge component for displaying textMintingOrdersBadge
🐛 fix(examples.tsx): rename textMintingOrders to textMintingOrdersBadge for better clarity and semantics
🐛 fix(en.json): update minting-success-message-badge translation to match the new text in the code
🐛 fix(fr.json): update minting-success-message-badge translation to match the new text in the code

* 🔧 fix(cart/page.tsx): add block and className to Button component to improve styling and layout
🗑️ chore(error.tsx): remove unused error component
🔧 fix(purchase/layout.tsx): replace Card component with AppContainer component to improve layout and styling
🔧 fix(AppContainer.tsx): add h-full class to improve layout and ensure full height
🔧 fix(SumsubButton.tsx): add block and className to Button component to improve styling and layout
🔧 fix(PassFooterCardClient.tsx): replace CardFooter component with AppContainerFooter component to improve layout and styling
🔧 fix(Event.tsx): replace CardFooter component with AppContainerFooter component to improve layout and styling
🔧 fix(PassPurchaseCard.tsx): replace CardOverflow component with AppContainerOverflow component to improve layout and styling
🔧 fix(CardNavBack.tsx): add className to Button component to hide on small screens

* 🔧 chore(ci.yml): add NODE_OPTIONS environment variable with '--max_old_space_size=4096' value to increase memory limit for Node.js processes during CI
🔧 chore(staging-apps.yml): add NODE_OPTIONS environment variable with '--max_old_space_size=4096' value to increase memory limit for Node.js processes during staging app deployment

* 🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🆕 feat(.swcrc): add .swcrc configuration file for new project libs/features/back-office/roles-actions
🔄 chore(project.json): change build executor to @nx/js:swc for improved build performance
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support
🔄 chore(.swcrc): update target to es2022 for improved compatibility and language features support

* 🔧 chore(SumsubDialog.tsx): remove unused import to improve code cleanliness and maintainability
🔧 chore(project.json): fix outputPath typo in event-api project to ensure correct build output location
🔧 chore(package.json): remove unnecessary dependencies and configuration in common package
🔧 chore(.swcrc): add strict and noInterop options to improve code quality and maintainability
🔧 chore(package.json): remove unnecessary dependencies and configuration in types package
🔧 chore(tsconfig.json): remove unnecessary compiler options in types tsconfig
🔧 chore(nx.json): add analyzeSourceFiles option to @nx/rollup plugin configuration

* 🔧 chore(ci.yml): add NX_CLOUD_AUTH_TOKEN environment variable to CI workflow for authentication
🔧 chore(ci.yml): add NX_CLOUD_AUTH_TOKEN secret to CI workflow for authentication
🗑️ chore(roles-actions): remove unused .swcrc configuration file
🔧 chore(roles-actions): update jest.config.ts to remove @swc/jest transformer
🔧 chore(roles-actions): update project.json to use @nx/rollup:rollup executor and swc compiler
sebpalluel added a commit that referenced this pull request Dec 12, 2023
* 🔧 fix(preview-apps-delete.yml): remove unnecessary steps for download… (#141)

* 🔧 fix(preview-apps-delete.yml): remove unnecessary steps for downloading and getting PREVIEW_URL from cache
🔧 fix(preview-apps.yml): remove unnecessary steps for caching and installing Vercel CLI, saving environment variables to a file, and uploading env_vars.txt as an artifact
✨ feat(preview-apps.yml): add step to check if app should be built before deploying to Vercel
✨ feat(preview-apps.yml): add step to deploy preview to Vercel only if app requires build
✨ feat(preview-apps.yml): add step to comment on Pull Request with relevant links and Vercel Preview URLs for each app

* 🔧 chore(preview-apps.yml): remove unused setup-environment step to simplify workflow
🔧 chore(preview-apps.yml): move setup-environment step after checkout to ensure correct environment setup
🔧 chore(preview-apps.yml): fix cache key for Vercel CLI to ensure correct caching
🔧 chore(preview-apps.yml): fix environment variable name for build required status to ensure correct value is used in deployment step
✨ feat(preview-apps.yml): add support for caching build required status for each app to optimize deployment process
✨ feat(preview-apps.yml): add environment variable for build required status to deployment step to ensure correct deployment based on build status

* 🔧 chore(.env.local): update NX_CACHE_DIRECTORY to use .nx/cache directory for improved caching
🔧 chore(.eslintignore): update .eslintignore to ignore .nx directory for linting
🔧 chore(.eslintrc.json): update eslint configuration to use @nx/eslint-plugin and @nx/eslint-plugin/typescript
🔧 chore(.github/workflows/preview-apps-delete.yml): remove trailing whitespace at the end of the file
🔧 chore(.github/workflows/preview-apps.yml): remove trailing whitespace at the end of the file
🔧 chore(.github/workflows/staging-apps.yml): remove trailing whitespace at the end of the file
🔧 chore(.prettierignore): update .prettierignore to ignore .nx/cache directory
🔧 chore(migrations.json): update migrations.json with new migration descriptions and implementations
🔧 chore(package.json): update dependencies and devDependencies to latest versions

* 🔧 chore(next.config.js): remove unused serverActions configuration option in back-office and web apps
🔧 chore(generators): update import statement for Linter from '@nx/linter' to '@nx/eslint' in component generator spec

* 🔧 chore(project.json): update executor for lint script to use @nx/eslint:lint for consistency and compatibility with other projects

* 🔧 chore(workspace): update executor for lint target in project.json files to use @nx/eslint:lint for consistency with other projects

* 🔧 chore(.eslintrc.json): reformat and simplify ESLint configuration for better readability and maintainability

* 🔧 chore(preview-apps.yml): add 'set -e' to stop execution on error for better error handling
🔧 chore(nx.json): enable caching for various tasks to improve build and test performance

* 🔧 chore(ci.yml): remove unused workspace-lint command from parallel-commands to improve build performance
🔧 chore(nx.json): remove workspace-lint command to simplify configuration
🔧 chore(package.json): remove workspace-lint command from lint script to align with configuration changes
🔧 chore(README.md): remove workspace-lint command from deployment instructions as it is no longer needed

* 🔧 chore(preview-apps.yml): add debug flag to the script to improve troubleshooting capabilities

* 🐛 fix(preview-apps.yml): fix conditional check for BUILD_REQUIRED variable to correctly deploy preview to Vercel
✨ feat(preview-apps.yml): improve build check process by capturing output of nx-ignore command and setting BUILD_REQUIRED variable based on the output

* 🔧 chore(preview-apps.yml): add debug and error handling to app build check step for better troubleshooting

* 🐛 fix(preview-apps.yml): add debug output to check the exit status of the nx-ignore command

The debug output is added to print the exit status of the nx-ignore command. This will help in troubleshooting any issues related to the build process.

* 🐛 fix(preview-apps.yml): remove 'set -e' from app_check_build and build_app jobs to prevent job failure on non-zero exit status

* 🔧 chore(preview-apps.yml): remove unnecessary debug output and improve readability of the code
🔧 chore(staging-apps.yml): remove unnecessary debug output and improve readability of the code
🔧 chore(vercel.json): add rootDirectory property to specify the root directory of the project for Vercel deployment

* 🔧 chore(preview-apps.yml): update vercel pull command to use local config file for better organization and maintainability
🔧 chore(vercel.json): remove unnecessary rootDirectory property from vercel.json file

* 🔧 chore(staging-apps.yml): update Vercel deployment commands to use local configuration file for each app
🚀 feat(staging-apps.yml): add support for pulling Vercel configuration from local config file for each app to improve deployment process

* 🐛 fix(CartCancelled.stories.tsx): add msw handler to mock graphql query 'GetEventWithPasses' response as null
🐛 fix(CartSuccessful.stories.tsx): add msw handler to mock graphql query 'GetEventWithPasses' response as null
🐛 fix(PassList.stories.tsx): add parameters from PassCard.stories to meta parameters
🐛 fix(PassPurchase.stories.tsx): add msw handler to mock graphql query 'GetEventPassPendingOrderForEventPasses' response as null
🐛 fix(PassPurchaseSheetContainer.stories.tsx): add parameters from PassPurchase.stories to meta parameters

* 🔧 chore(preview-apps.yml): update environment variable configuration for Vercel deployment to use .vercel/.env.preview.local file instead of .env file
🔧 chore(PassList.stories.tsx): comment out unused code and remove unused imports to improve code readability and maintainability
🔧 chore(UserPassList.stories.tsx): comment out unused code and remove unused imports to improve code readability and maintainability

* 🔧 chore(preview-apps.yml): update Vercel deployment process to include build step and use prebuilt flag for faster deployments
🔨 refactor(Ping.stories.tsx): update WithNumberDoubleDigit story to have isActive set to false instead of true
🔨 refactor(Ping.tsx): update condition for rendering number in Ping component to include isActive check

* 🐛 fix(ConvertedCurrency): add support for translation key to display localized content in ConvertedCurrency component
🐛 fix(PassTotal): update translation key for total price in PassTotal component to match the changes in ConvertedCurrency component
✨ feat(PassTotal): add skeleton loading state for PassTotal component in Storybook
✨ feat(ConvertedCurrency): add support for translation key to display localized content in ConvertedCurrency component
🌐 chore(i18n): update translation keys for total price in English and French messages to match the changes in PassTotal component

* 🐛 fix(next.config.js): update remotePatterns in images configuration to match media.graphassets.com
🐛 fix(next.config.js): update remotePatterns in images configuration to match media.graphassets.com
✨ feat(next.config.js): enable serverActions experimental feature for Next.js
🐛 fix(next.config.js): update remotePatterns in images configuration to match media.graphassets.com
✨ feat(next.config.js): enable serverActions experimental feature for Next.js
🐛 fix(tsconfig.json): exclude examples.tsx files from TypeScript compilation
🐛 fix(AppNavLayout.tsx): move mobile navigation menu to a separate component
✨ feat(AppNavLayoutDesktop.tsx): create AppNavLayoutDesktop component for desktop navigation
✨ feat(AppNavLayoutMobile.tsx): create AppNavLayoutMobile component for mobile navigation
🐛 fix(AppNavLayout.tsx): move mobile navigation menu to a separate component

* 🐛 fix(preview-apps.yml): remove unnecessary variable assignment in vercel build command to fix build process

The variable assignment in the vercel build command was unnecessary and caused issues during the build process. Removing it will fix the build process.

* 🔧 chore(preview-apps.yml): add NODE_OPTIONS environment variable to increase max old space size for better memory management during build process

* 🔧 chore(site.ts): comment out unused site configuration properties to improve code readability and maintainability

🔧 chore(layout.tsx): comment out unused metadata properties to improve code readability and maintainability

* 137 staging bugs (#144)

* add: maxDuration to 30 seconds for route stripe/checkout to match stripe timeout and give more time to checkOrder

fix: alchemy fix, switching from data() thirdweb from all to only one nft to get the base ipfs tokenUri

fix: pass not showing in /pass due to eventParameters not having dates

fix: french word missing in sentence

fix: back-event pass url in pass view and max maxDuration for claim/order route

* 🐛 fix(preview-apps.yml): pass global config file to vercel deploy command to fix issue with deploying prebuilt apps

* 🔨 refactor(SinglePass.stories.tsx): remove unused import and reorganize import statements for better readability
🐛 fix(SinglePass.stories.tsx): update button names to match the changes in the component for better consistency and accuracy

* 🐛 fix(action.ts): throw error if event is not found or has no date to handle edge cases
🔧 chore(nx.json): increase parallelism to 5 for faster execution of tasks

* 📝 chore(eslint): add .eslintrc.ci.json configuration file to enforce additional rules for CI environment
🔧 chore(eslint): remove eslint-plugin-prettier from .eslintrc.json as it is not needed
🔧 chore(eslint): update import/no-cycle rule to be turned off in .eslintrc.json

* 🔧 chore(.eslintrc.json): remove unnecessary line breaks and align plugin array for better readability
🔧 chore(.eslintrc.json): remove unused rules and align import parser array for better readability

* 🔧 chore(.eslintrc.ci.json): extend configuration from .eslintrc.json to maintain consistency and avoid duplication of rules
🔧 chore(ci.yml): update linting command to use --eslintConfig flag instead of --config flag to align with changes in lint-staged.config.js
🔧 chore(lint-staged.config.js): update linting command to use --eslintConfig flag instead of --config flag to align with changes in ci.yml

---------

Co-authored-by: sebpalluel <[email protected]>

* 145 back office cleanup main layout and put real menu similarly to web (#147)

* 🐛 fix(main.ts): remove unnecessary code and imports to improve code readability and maintainability
✨ feat(main.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(preview.tsx): remove unnecessary code and imports to improve code readability and maintainability
✨ feat(preview.tsx): add DarkModeDecorator, I18nextStoryDecorator, and localStorageResetDecorator decorators for storybook customization
🐛 fix(preview.tsx): remove unnecessary code and imports to improve code readability and maintainability

* 🚀 feat(ProfileNav): import ProfileNav as named export to improve code readability and maintainability
🚀 feat(ProfileNav): remove default export of ProfileNav to align with named export
🚀 feat(ProfileAvatar): import ProfileAvatar as named export to improve code readability and maintainability
🚀 feat(ProfileAvatar): remove default export of ProfileAvatar to align with named export

* 📦 chore(storybook): add main.ts configuration file to back-office storybook to specify story files and features
📦 chore(storybook): add preview-head.html file to back-office storybook to include Google Fonts link for Inter font
📦 chore(storybook): add preview.tsx file to back-office storybook to configure decorators and loaders
📦 chore(project.json): update port configuration for back-office storybook to use port 4403
📦 chore(tsconfig.json): add tsconfig.storybook.json reference to back-office tsconfig.json to include story files in compilation
📦 chore(tsconfig.storybook.json): create tsconfig.storybook.json file for back-office storybook to specify include and exclude paths
🔥 chore(Dockerfile.web.local): remove Dockerfile.web.local file as it is no longer needed
🔥 chore(storybook.preview.base.tsx): remove storybook.preview.base.tsx file as it is no longer needed
📦 chore(tsconfig.base.json): add back-office app-nav-ui to tsconfig.base.json to include its source files in compilation

* 📦 chore(app-nav): add app-nav library to back-office feature

📝 docs(app-nav): add README.md file for app-nav library

🔧 chore(app-nav): add eslint configuration for app-nav library

🔧 chore(app-nav): add jest configuration for app-nav library

🔧 chore(app-nav): add package.json for app-nav library

🔧 chore(app-nav): add project.json for app-nav library

🔧 chore(app-nav): add index.ts file for app-nav library

🔧 chore(app-nav): add hello-server.tsx file for app-nav library

🔧 chore(app-nav): add tsconfig.json for app-nav library

🔧 chore(app-nav): add tsconfig.lib.json for app-nav library

🔧 chore(app-nav): add tsconfig.spec.json for app-nav library

🔧 chore(app-nav): update tsconfig.base.json to include app-nav library

* move app-nav-ui to app-nav naming

* 🚀 feat(storybook): update storybook configuration for back-office and web apps

📝 chore(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics

🔧 chore(tsconfig.base.json): update paths for various modules and libraries

* 🚀 feat(app-nav): add ProfileNavClient component to export React client components for profile navigation
🔥 chore(app-nav): remove unused HelloServer component
🆕 feat(app-nav): add ProfileNavClient.stories.tsx to showcase the usage of ProfileNavClient component
🆕 feat(app-nav): add ProfileNavClient component to handle profile navigation logic and UI rendering

* 🚀 feat(app-nav): add ProfileNavClient component to handle profile navigation for authenticated users

🚧 chore(app-nav): add ProfileNavClient.stories.tsx to showcase the usage of ProfileNavClient component

🔧 fix(app-nav): fix import statements in ProfileNavClient.tsx to resolve module paths

🔧 fix(app-nav): fix import statements in examples.tsx to resolve module paths

* 🔧 fix(profileNav/default.tsx): update import path for ProfileNavClient to use the new location in @features/app-nav
🔧 fix(layout.tsx): reorder NextAuthProvider and AuthProvider components to fix authentication flow
🔧 fix(next.config.js): update import path for @features/appNav/ui to @features/appNav to match the actual location

* 🚀 feat(default.tsx): add new component ProfileNavSection to handle profile navigation in the app
🚀 feat(layout.tsx): add CurrencyProvider to provide currency context to the app
🔥 chore(ProfileNavClient.tsx): remove unused component ProfileNavClient
🔧 chore(next.config.js): update import paths for appNav related features

* ✨ feat(settings/page.tsx): add new settings page component to the back office app

🐛 fix(manifest.json): update short name and name fields for back office and web apps to improve clarity and branding

* 🔧 chore(jest.config.ts): remove unnecessary transform configuration and update moduleFileExtensions
🔧 chore(middleware.ts): update authPages paths to remove leading slashes for consistency
🔧 chore(tsconfig.spec.json): include *.spec.ts files in the test configuration

* 🔧 chore(middleware.spec.ts): add unit tests for middleware function
🔧 chore(middleware.ts): add support for sub routes in authPages array to restrict access to dashboard sub routes

* 🚀 feat(chromatic-back-office.yml): add workflow for Chromatic Back-Office to automatically publish changes to Chromatic on pull requests and pushes to staging branch
🚀 feat(chromatic-web.yml): update paths for Chromatic Web workflow to include libs/features and exclude libs/features/back-office
🚀 feat(package.json): add script for building Storybook for Back-Office component library

* 149 web add new orderstatus is minting (#150)

* fix: add png extension to upload filepath

* add: is_minting order status

* rename: getEventPassOrderPurchased

* add: is_minting to trigger

* add: error and refunded to update eventPassOrder sums

* update: tests for getEventPassOrderPurchasedForEventPass/es

* update: tests for eventPassOrder and migration for update eventPassOrder sums

* add: setRates in local in layout.tsx

* add: bytescale png verification

* add: new minting success message

* fix: tests for new getPassorganizer/User

* fix: eventPassOrder_by_pk for type in nft EventWithContractMetada

* fix: eventPassOrder_by_pk in routes.ts claim/order

* fix: squash migrations

* fix: add story for minting success in /pass

* fix: add test for eventPassOrder is_minting status

* fix: tests for eventPassOrder with is_minting

* add: generateMetadata in page.tsx for organizer/organizerSlug/event/e… (#151)

* add: generateMetadata in page.tsx for organizer/organizerSlug/event/eventSlug

* add: locale for language and generateLocaleURLs for alternates languages

* RBAC back-office (#153)

* ✨ feat(audit): add audit functionality to track changes in tables

This commit adds the necessary SQL scripts to implement an audit functionality for tracking changes in tables. The audit functionality is based on the 2ndQuadrant/audit-trigger project with a few modifications. The changes include:
- Requiring PostgreSQL version 10 or higher
- Storing row data in jsonb format

The commit includes the following changes:
- Creates a new schema called "audit" to store the audit tables and trigger functions
- Creates a table called "audit.logged_actions" to store the history of auditable actions on audited tables
- Defines a trigger function called "audit.if_modified_func()" to track changes to a table at the statement and/or row level
- Defines a function called "audit.audit_table()" to add auditing support to a table, allowing for row-level changes to be logged with full client query text
- Provides convenience call wrappers for the "audit.audit_table()" function to simplify the process of adding auditing support to a table

The audit functionality allows for customization through optional parameters in the CREATE TRIGGER call, including whether to log the query text and which columns to ignore in updates.

✨ feat(roles_and_role_assignments): add migration scripts for roles and role_assignments tables

The migration scripts add the following changes:
- Create the "roles" table to store different user roles with their values as primary keys.
- Insert default roles into the "roles" table.
- Add comments to describe each role in the "roles" table.
- Create the "role_assignments" table to assign roles to accounts, allowing a many-to-many relationship.
- Add comments to explain the purpose and design of the "role_assignments" table.
- Enable auditing for the "role_assignments" table to record row changes and SQL text.

These changes are necessary to implement the Role-Based Access Control (RBAC) system integration within the Offline platform.

📦 chore(audit): add audit_logged_actions.yaml table to audit schema
📦 chore(audit): add public_role_assignments.yaml table to public schema
📦 chore(audit): add public_roles.yaml table to public schema
📦 chore(audit): update tables.yaml to include new tables audit_logged_actions.yaml, public_role_assignments.yaml, and public_roles.yaml

🔧 chore(.env.local): add HASURA_GRAPHQL_DEV_MODE=true to enable development mode in local environment
🔧 chore(.env.test.jest): add HASURA_GRAPHQL_DEV_MODE=true to enable development mode in test environment

📦 chore(roleAssignments): rename table and file names to improve consistency and readability

📝 docs(roleAssignments): update table comment to provide more detailed explanation of its purpose and design

🔧 fix(roleAssignments): update migration scripts to use correct table name and schema

🐛 fix(docker-compose.yaml): add x-hasura-organizer-id claim to HASURA_GRAPHQL_JWT_SECRET in order to support organizer role in authorization
✨ feat(docker-compose.yaml): update HASURA_GRAPHQL_JWT_SECRET in test/docker-compose.yml to include x-hasura-organizer-id claim for testing purposes

🔧 fix(index.spec.ts): update mockOrganizer object to include role property for better test coverage
🔧 fix(index.spec.ts): update path in test case to use mockOrganizer's role.organizerId instead of organizerId
🔧 fix(index.ts): update getJwtAccessOptions function to handle access depending on user's role
🔧 fix(next-auth.ts): import RoleAssignments type from '@gql/shared/types' for better type checking

🔍 chore(.opencommitignore): add schema.graphql and schema.json to the list of ignored files to exclude them from version control

🔧 chore(.opencommitignore): update ignore patterns for schema.graphql and schema.json files
🐛 fix(Dashboard/layout.tsx): fix condition to check if user is an organizer by accessing the role property
🐛 fix(Dashboard/page.tsx): fix condition to check if user is an organizer by accessing the role property

🔒 chore(public_eventParameters.yaml): add insert permissions for the 'organizer' role

🔒 chore(public_eventParameters.yaml): add check condition for insert permissions of 'organizer' role to ensure the user has the required role assignments

🔒 chore(public_eventParameters.yaml): set 'organizerId' column value to 'X-Hasura-Organizer-Id' for insert permissions of 'organizer' role

🔒 chore(public_eventParameters.yaml): specify columns for insert permissions of 'organizer' role

🔧 chore(hasura): update role names and descriptions for better clarity and organization

The role names and descriptions in the `public_eventParameters.yaml` file and the `up.sql` and `down.sql` migration scripts have been updated to use the prefix "organizer_" to indicate that these roles are specific to organizers. This change improves clarity and organization within the codebase.

🔒 chore(.env.local): update JWT secrets for authentication to improve security
🔒 chore(next.config.js): update NEXTAUTH_SECRET to improve security
🔒 chore(docker-compose.yaml): update HASURA_GRAPHQL_JWT_SECRETS to improve security
🔒 chore(tools/test/docker-compose.yml): update HASURA_GRAPHQL_JWT_SECRETS to improve security

🐛 fix(route.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(route.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(index.spec.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(index.spec.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(index.spec.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(index.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(getCurrentUser.ts): remove unnecessary parameters from createOptions() and getServerSession() function calls
🐛 fix(getJwt.ts): remove unnecessary parameter from nextAuthCookieName() function call
🐛 fix(getJwt.ts): remove unnecessary parameters from getToken() function call
🐛 fix(getSession.ts): remove unnecessary parameters from createOptions() and getServerSession() function calls

🔧 fix(nextAuthCookieName.ts): add support for appending '.back-office' to the cookie name if isBackOffice() returns true
🔧 fix(index.ts): refactor generateJwt function to accept user object and secret as arguments, and generate JWT with user and role information for marketplace users
🔧 fix(index.ts): refactor usersJwt object to use generateJwt function with user object, secret, and role for marketplace users

📝 chore(env): update HASURA_VERSION to v2.35.0 in .env.local file to use the latest version of Hasura GraphQL Engine
📝 chore(docker-compose): update hasura/graphql-engine image version to v2.35.0 in docker-compose.yaml file to use the latest version of Hasura GraphQL Engine
📝 chore(hasura): update Hasura CLI version to v2.35.0 in Dockerfile to use the latest version of Hasura CLI
📝 chore(test): update hasura/graphql-engine image version to v2.35.0.cli-migrations-v3 in docker-compose.yml file to use the latest version of Hasura GraphQL Engine for testing purposes

🐛 fix(global-error.tsx): remove unnecessary console.log statement in Error component
🔀 merge(gql): add support for back-office-jwt and marketplace-jwt headers in fetchDataForTest function
🔧 chore(jest.setup.back-office.ts): add environment variables for back-office app and NEXTAUTH_SECRET

📦 chore(docker-compose.yaml): update PostgreSQL image version from 13 to 16 for both db and test-db services to use the latest version

🔧 refactor(features-pass-cache.ts): update cache methods to use kv namespace for better readability and maintainability
🔧 refactor(index.spec.ts): update cache methods to use kv namespace for better readability and maintainability
🔧 refactor(index.ts): rename client property to kv and update cache methods to use kv namespace for better readability and maintainability

📦 chore(admin): add admin role library

📝 Add .eslintrc.json configuration file for the admin role library to extend the root .eslintrc.json file and ignore specific patterns.

📝 Add .swcrc configuration file for the admin role library to configure the SWC compiler options.

📝 Add README.md file for the admin role library.

📝 Add jest.config.ts file for the admin role library to configure Jest for unit testing.

📝 Add package.json file for the admin role library.

📝 Add project.json file for the admin role library to define the project structure and targets.

📝 Add index.ts file for the admin role library to export the roles-admin module.

📝 Add roles-admin.ts file for the admin role library to implement the RoleInvitationService class and its methods.

📝 Add tsconfig.json file for the admin role library to extend the base tsconfig and configure the compiler options.

📝 Add tsconfig.lib.json file for the admin role library to extend the tsconfig.json and configure the compiler options for the library.

📝 Add tsconfig.spec.json file for the admin role library to extend the tsconfig.json and configure the compiler options for unit testing.

🔧 chore(roles_and_role_assignments): update down.sql and up.sql to add "invitedById" column and unique constraint on roleAssignments table
✨ feat(account.query.gql): add new query GetAccountByAddress to fetch account by address
📦 add(roles/roleAssignments.mutation.gql): add new mutation CreateRoleAssignment to insert a role assignment into roleAssignments table

🔧 chore(roleAssignments.yaml): add object and remote relationships, select and delete permissions to improve data model and access control

📝 docs(roleAssignments.query.gql): add new queries to fetch role assignments with organizer and inviter information

📝 docs(RoleAssignmentsFields.fragement.gql): add fragment for role assignments fields

🔧 chore(roles-admin.ts): refactor and improve code readability and semantics
🚀 feat(roles-admin.ts): add support for accepting and declining role invitations
🐛 fix(roles-admin.ts): fix bugs related to invitation verification and retrieval

🔧 chore(roles-admin.ts): refactor RoleInvitationService constructor to accept an optional cache parameter for better testability and flexibility
🔧 chore(roles-admin.spec.ts): add tests for RoleInvitationService class methods to ensure proper functionality and error handling
🔧 chore(index.ts): add back-office user accounts and JWT generation for testing purposes

📦 chore(roles-api): add ESLint configuration file

📦 chore(roles-api): add README.md file

📦 chore(roles-api): add Jest configuration file

📦 chore(roles-api): add package.json file

📦 chore(roles-api): add project.json file

📦 feat(roles-api): add index.ts file

📦 feat(roles-api): add getMyRoles function

📦 feat(roles-api): add getMyRolesWithOrganizerAndInviterInfos function

📦 feat(roles-api): add getMyRolesWithOrganizerInfos function

📦 chore(roles-api): add tsconfig.json file

📦 chore(roles-api): add tsconfig.lib.json file

📦 chore(roles-api): add tsconfig.spec.json file

🔧 chore(public_account.yaml): remove unused remote_relationships block to simplify the configuration
🔧 chore(1698942028885_roles_and_role_assignments): add NOT NULL constraint to "accountId", "invitedById", and "role" columns for roleAssignments table
🔧 chore(1699117141773_alter_table_public_account_drop_column_organizerId): add migration scripts to drop and add "organizerId" column in the "account" table
🔧 chore(0_account.sql): remove "organizerId" column from INSERT statements in the "account" seed data
🔧 chore(AccountFields.fragment.gql): remove "organizerId" field from AccountFields fragment
🔧 chore(index.ts): update backOfficeAccounts object to use satisfies keyword instead of casting to AppUser

📝 chore(roleAssignments.sql): add roleAssignments seed file to populate roleAssignments table with initial data
📝 chore(db): update SeedTable enum to include roleAssignments table
📝 chore(gql): add alpha_organizer2_admin_user to backOfficeAccounts to simulate an organizer admin user with a dummy organizer ID
📝 chore(deleteAllData.js): add roleAssignments table to tablesToDelete list to ensure it gets deleted when running deleteAllData script

🔥 refactor(migrations): remove unnecessary migration files and update account seed data

🔥 refactor(migrations): remove unnecessary migration files and update account seed data to remove "isOrganizer" column and update "emailVerified" column values

🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(index.ts): import Currency_Enum_Not_Const from '@currency/types' to fix missing import error
🐛 fix(index.ts): remove unused imports to improve code cleanliness
✨ feat(index.ts): add supportedCurrencies property to Currency class to store supported currencies as a string
✨ feat(index.ts): initialize supportedCurrencies property in Currency class constructor to join values of Currency_Enum_Not_Const enum
🐛 fix(index.ts): update getRate method in Currency class to include symbols query parameter in API URL to fetch rates for supported currencies only
🐛 fix(tsconfig.json): add "preserveConstEnums": true to preserve const enums during compilation
🐛 fix(tsconfig.lib.json): add "preserveConstEnums": true to preserve const enums during compilation
🐛 fix(currency-types.ts): update Currency_Enum_Not_Const enum values to start with uppercase letters for consistency
🐛 fix(next-currency-cache.spec.ts): update import statements to fix missing import errors
✨ feat(CurrencyCache): add CurrencyCache class to handle caching of currency rates
✨ feat(CurrencyCache): implement getCacheKey method to generate cache key for a given currency
✨ feat(CurrencyCache): implement withCacheKey method to wrap a function with cache key generation logic
✨ feat(CurrencyCache): implement setRate method to fetch rate for a currency from Currency API and store it in Cache API
✨ feat(CurrencyCache): implement getRate method to fetch rate for a currency from Cache API
✨ feat(CurrencyCache): implement setRates method to set rates for all currencies by calling setRate method for each currency
✨ feat(CurrencyCache): implement getRates method to fetch rates for all currencies by calling getRate method for each currency
✨ feat(CurrencyCache): implement populateCacheIfEmpty method to populate cache with rates if cache is empty
🐛 fix(CurrencyProvider): update import statement to fix missing import error
✨ feat(CurrencyProvider): create instance of CurrencyCache class to handle caching of currency rates
✨ feat(CurrencyProvider): update useEffect hook to call getRates method of CurrencyCache instance

🔧 chore(roles-api): update jest configuration to ignore integration tests and add new integration test configuration
✨ feat(roles-api): add integration test configuration for roles-api
🔧 chore(roles-api): update project.json to include new test-integration executor and configuration
✅ test(roles-api): add integration test for getMyRoles function
✅ test(roles-api): add unit test for getMyRoles function
🔧 chore(roles-api): update tsconfig.spec.json to include types from the types folder in the coverage calculation

🔀 refactor(index.ts): reorganize and optimize user client functions

🔀 refactor(index.ts): reorganize and optimize back-office user client functions

✨ feat(index.ts): add support for isBackOffice parameter in alphaUserClient and betaUserClient functions to generate appropriate JWTs for back-office users

🐛 fix(roleAssignments.sql): fix incorrect value in accountId field in one of the seed records

🚀 feat(docker-compose.yaml): add "organizer_human_resources" service to the list of services in the docker-compose file to support new functionality related to human resources management in the organization

🐛 fix(roles_role_assignments_account): add "organizer_human_resources" role to the list of roles in the up and down migration scripts to enable administrative permissions for managing human resources in the organization

🚀 feat(docker-compose.yml): add "organizer_human_resources" service to the list of services in the test docker-compose file to support testing of new functionality related to human resources management in the organization

🔥 refactor(public_eventParameters.yaml): remove unused insert_permissions block to simplify the configuration
🔥 refactor(public_nftTransfer.yaml): remove unused select_permissions block to simplify the configuration

🔧 fix(roles-admin.spec.ts): add missing cache operations for srem and sadd
✨ feat(roles-admin.ts): add support for managing inviter's sent invitations in cache

📦 chore: add roleAssignments.query.gql and RoleAssignmentsFields.fragment.gql files to the project
🐛 fix(roles-admin.ts): fix expiration time calculation for invitation creation to set it to 24 hours from now
✨ feat(roles-admin.ts): add invitationForRoleExists method to check if an invitation or role assignment already exists for a given role, organizer, and event
🐛 fix(roles-admin.ts): perform cleanup and throw error if invitation has expired during verification or acceptance of invitation

🐛 fix(types): update type definition for EventPassOrderWithContractData to use correct GraphQL query response type
✨ feat(roles-admin): add support for checking if an invitation for a role exists for a given inviter, invited, role, organizerId, and eventId
✅ test(roles-admin): add tests for invitationForRoleExists and getInvitationsByInviter methods in RoleInvitationService class
🐛 fix(roles-admin): fix bug in invitationForRoleExists method where it was not returning false when the invited user does not have the given role for the given organizer and event
✨ feat(roles-admin): add support for filtering out null results from expired or non-existent invitations in getInvitationsByInviter method
🐛 fix(roles-admin): fix bug in fetchInvitation method where it was not marked as public

🐛 fix(roles-admin.spec.ts): remove unnecessary mockResolvedValue for cache get method
✨ feat(roles-admin.spec.ts): add test cases for fetchInvitation method to cover different scenarios

🐛 fix(roles-admin.spec.ts): fix incorrect property names in invitationForRoleExists and verifyInvitation functions

🐛 fix(roles-admin.spec.ts): import RoleAuthorization class to fix reference error
✨ feat(roles-admin.spec.ts): add tests for RoleAuthorization.inviteAccountWithRole method to ensure proper role authorization logic
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns

📦 chore(roles-actions): add roles-actions library

✨ feat(roles-actions): add .eslintrc.json configuration file for roles-actions library

✨ feat(roles-actions): add README.md file for roles-actions library

✨ feat(roles-actions): add jest.config.ts configuration file for roles-actions library

✨ feat(roles-actions): add package.json file for roles-actions library

✨ feat(roles-actions): add project.json configuration file for roles-actions library

✨ feat(roles-actions): add index.ts file for roles-actions library

✨ feat(roles-actions): add inviteAccountWithRole.ts file for roles-actions library

✨ feat(roles-actions): add inviteAccountWithRole.spec.ts file for roles-actions library

✨ feat(roles-actions): add tsconfig.json configuration file for roles-actions library

✨ feat(roles-actions): add tsconfig.lib.json configuration file for roles-actions library

✨ feat(roles-actions): add tsconfig.spec.json configuration file for roles-actions library

🔧 chore(public_roleAssignments.yaml): add insert and delete permissions for organizer_human_resources and organizer_super_admin roles
🔧 chore(public_roleAssignments.yaml): add insert and delete permissions for organizer_human_resources and organizer_super_admin roles
🔧 chore(inviteAccountWithRole.spec.ts): refactor test cases to use mock functions and improve readability

feat: updated next-auth to handle RBAC with user.role for backoffice + tests

feat: account now return roles list

feat: permissions for roleAssignments + roles relationship in account

🐛 fix(index.spec.ts): remove unused imports and variables
🐛 fix(index.spec.ts): remove unused mockReq variable
🐛 fix(index.spec.ts): remove commented out code
🐛 fix(index.spec.ts): remove unused mockToken variable
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in back office
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in back office and updated role
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in back office and unauthorized role
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in back office and unauthorized kyc status
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in web app
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in web app and no role
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in web app and unauthorized role
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in web app and unauthorized kyc status
🐛 fix(index.ts): remove unused import
🐛 fix(index.ts): remove unused variable
✨ feat(index.ts): add check for user role and return undefined if role is not defined
✨ feat(index.ts): add check for user role and return undefined if app is not back office
✨ feat(index.ts): add check for user role and return undefined if user kyc is not validated
🐛 fix(next-auth.ts): remove unused import
🐛 fix(next-auth.ts): remove unused type import
✨ feat(next-auth.ts): update AppUser type to use Role type instead of RoleAssignments type
🐛 fix(index.ts): remove unused import
🐛 fix(index.ts): remove unused type import
✨ feat(index.ts): export Role type

🔥 refactor(jest.config.js): remove unused jest configuration file

🔥 refactor(next/hasura/utils): remove unused files and configurations

🔥 refactor(next/hasura/utils/src/index.ts): remove unused enum and types

🔥 refactor(next/hasura/utils/tsconfig.json): remove unused tsconfig file

🔥 refactor(next/hasura/utils/tsconfig.lib.json): remove unused tsconfig file

🔥 refactor(next/hasura/utils/tsconfig.spec.json): remove unused tsconfig file

🔥 refactor(tsconfig.base.json): remove unused paths for next/hasura/utils

🔀 refactor(index.ts): add optional levelName parameter to isUserKycValidated function for more flexible validation
🐛 fix(index.ts): fix isUserKycValidated function to properly validate user's kyc levelName if provided

📦 chore(roles): add ESLint configuration file for roles feature

📦 chore(roles): add README.md file for roles feature

📦 chore(roles): add Jest configuration file for roles feature

📦 chore(roles): add package.json file for roles feature

📦 chore(roles): add project.json file for roles feature

📦 chore(roles): add index.ts file for roles feature

📦 chore(roles): add RoleBadge.stories.tsx file for RoleBadge component

📦 feat(RoleBadge): implement RoleBadge component to display role badges

📦 chore(roles): add tsconfig.json file for roles feature

📦 chore(roles): add tsconfig.lib.json file for roles feature

📦 chore(roles): add tsconfig.spec.json file for roles feature

📦 chore(i18n): update en.json and fr.json with translations for RoleBadge component

📦 chore(role-avatar): add RoleAvatar component and its stories

📝 Add RoleAvatar component and its related files:
- Added RoleAvatar.stories.tsx file to showcase the RoleAvatar component in Storybook.
- Added RoleAvatar.tsx file to implement the RoleAvatar component.
- Added examples.tsx file to provide example data for the RoleAvatar component.

The RoleAvatar component is used to display an avatar for a specific role with its associated organizer. It takes a role object as a prop, which includes information about the organizer such as their name, image URL, and slug. The component renders an avatar with the organizer's image if available, or falls back to displaying the organizer's initials if no image is provided.

The RoleAvatar component is now ready to be used in the application.

📦 chore(gql): add OrganizerFields fragment to improve code reusability and readability in roleAssignments queries
🔀 merge(gql): use OrganizerFields fragment in roleAssignments queries to fetch organizer information
🔀 merge(roles): add RoleWithOrganizer type to represent a role with associated organizer information

🚀 feat(app-nav): add ProfileAvatar component to app-nav library

🐛 fix(app-nav): fix className assignment in ProfileAvatar component

🚀 feat(app-nav): add ProfileNav and ProfileNavSkeleton components to app-nav library

🚀 feat(app-nav): add ProfileNavClient component to app-nav library

🚀 feat(app-nav): add ProfileNavClientExample and ProfileNavExample components to app-nav library

* 🐛 fix(docker-compose.yml): fix syntax error by adding missing closing double quote for "organizer_guest" service name

* 🐛 fix(layout.tsx): import CurrencyCache instead of individual functions from currency-cache to improve code readability and maintainability
🐛 fix(layout.tsx): change getRate and setRates function calls to methods of CurrencyCache class to improve code readability and maintainability
🐛 fix(next.config.js): add webpack configuration to resolve fs and path modules to fix build errors
🐛 fix(next.config.js): add webpack configuration to resolve fs and path modules to fix build errors
🐛 fix(layout.tsx): import CurrencyCache instead of individual functions from currency-cache to improve code readability and maintainability
🐛 fix(layout.tsx): change getRate and setRates function calls to methods of CurrencyCache class to improve code readability and maintainability
🐛 fix(next.config.js): add webpack configuration to resolve fs and path modules to fix build errors
🐛 fix(next.config.js): add webpack configuration to resolve fs and path modules to fix build errors
🐛 fix(index.ts): change ProfileAvatarProps type import to use 'type' keyword for consistency
🐛 fix(setRates.ts): import CurrencyCache instead of next-currency-cache to improve code readability and maintainability
🐛 fix(next-currency-cache.ts): remove unnecessary 'use server' statement
🐛 fix(roles-admin.ts): add null check for user.role to prevent potential errors

* fix: alchemy network undefined, change in AlchemyNFTACtivityWebHookEvent

* fix: alchemy tests and network in event

* 🔧 chore(handleAccount.spec.ts): add test case for null roles in handleAccount function

* 🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(default.tsx): refactor ProfileNavSection to accept locale as a parameter to improve reusability
✨ feat(default.tsx): add Suspense component to handle loading state and render ProfileNavSectionContent when locale is available
🐛 fix(default.tsx): refactor ProfileNavSectionContent to use getCurrentUser and getMyRolesWithOrganizerInfos functions to improve data fetching
✨ feat(default.tsx): pass roles and account props to ProfileNavClient component to display user role and account information
🐛 fix(index.ts): export ProfileNavSkeleton component to fix import error in other files
🐛 fix(ProfileNav.stories.tsx): remove unused imports and fix import path for ProfileNavSkeleton component
✨ feat(ProfileNav.stories.tsx): add new stories for different scenarios of ProfileNav component
🐛 fix(ProfileNav.tsx): refactor ProfileNav component to split rendering logic into separate functions for better readability
✨ feat(ProfileNav.tsx): add ProfileNavUser, ProfileNavNotConnected, and ProfileNavRole components to handle different user states and roles
🐛 fix(ProfileNavClient.tsx): refactor ProfileNavClient component to use SafeUser type from @next/auth and RoleWithOrganizer type from @roles/types
✨ feat(ProfileNavClient.tsx): add matchingRole variable to find the matching role for the current user and pass it to ProfileNav component
🐛 fix(examples.tsx): fix import path for ProfileNav component
✨ feat(examples.tsx): add user object for testing purposes
🐛 fix(RoleAvatar.stories.tsx): remove unused import and fix import path for RoleAvatar component
✨ feat(RoleAvatar.stories.tsx): add new stories for different scenarios of RoleAvatar component
🐛 fix(RoleAvatar.tsx): fix fallback value for organizer name and profile image in RoleAvatar component
✨ feat(role-avatar/examples.tsx): rename organizerRole to organizerRoleAdmin for better clarity
🐛 fix(index.ts): export RoleBadge component from lib/role-badge/RoleBadge

* 🔧 fix(ProfileNav.tsx): update CSS classes to improve readability and maintain consistency
🔧 fix(RoleBadge.tsx): update import path for Badge component to match new file structure
🔧 fix(index.ts): update export statement for Badge component to include type BadgeProps

* add make reset-docker to ci

make ci commands sequential

🔧 chore(ci.yml): update parallel commands in CI workflow to run docker:test and docker:services commands concurrently
🐛 fix(docker-compose.yaml): fix JSON path in x-hasura-* headers to correctly access values

* 🐛 fix(ProfileNav.stories.tsx): include WithUser configuration in Skeleton story to ensure consistent rendering
🐛 fix(RoleAvatar.tsx): remove 'role' prop from Omit type to prevent TypeScript error
✨ feat(RoleAvatar.tsx): destructure 'props' object in function signature for improved readability and maintainability
🔧 chore(tsconfig.lib.json): exclude example and story files from TypeScript compilation to improve build performance

* 🔨 refactor(ProfileNav.tsx): improve readability and semantics of ProfileNav component
🐛 fix(ProfileNav.tsx): replace span element with div element for better accessibility and styling

---------

Co-authored-by: Alexandre Gouasmi <[email protected]>

* 🐛 fix(layout.tsx): fix missing rates variable assignment in RootLayout function to prevent undefined error
✨ feat(layout.tsx): add support for fetching and passing currency rates to CurrencyProvider component in RootLayout function

* ⬆️ chore(package.json): update @sentry/nextjs and @sentry/utils to version 7.77.0 for critical security fix
⬇️ chore(package.json): downgrade next-auth to version 4.23.1 to resolve compatibility issues with SIWE

* try to check if SIWE working with last versions of packages

* try to remove webpack to check if SIWE issue fixed

* try to remove webpack to check if SIWE issue fixed

* 155 back office roles UI app nav (#157)

* 🚀 feat(ui): add SelectItems component to handle rendering of select items in the UI library
🔧 chore(ui): add SelectItems stories to showcase different usage scenarios and functionality of the component

🔨 refactor(DropdownMenuItemClient.tsx): reorder imports to improve readability and maintain consistency
🔨 refactor(DropdownMenuItems.tsx): reorder imports to improve readability and maintain consistency
🔨 refactor(NavigationMenu.tsx): reorder imports to improve readability and maintain consistency

🔧 fix(ProfileNav.tsx): remove unnecessary class names and improve layout in ProfileNav component
🔧 fix(ProfileNav.stories.tsx): refactor WithAdminRoleMobile to reuse WithAdminRole configuration and update viewport
🔧 fix(ProfileNav.tsx): remove unnecessary class names and improve layout in ProfileNavUser and ProfileNavNotConnected components
🔧 fix(ProfileNav.tsx): remove unnecessary class names and improve layout in ProfileNavRole component

🚀 feat(app-nav): add new examples for AppNavLayout component

- Added new examples for the AppNavLayout component to showcase different scenarios.
- Added the "WithUser" example to demonstrate the layout with a user profile navigation.
- Added the "WithAdminRole" example to demonstrate the layout with an admin role profile navigation.
- Added the "WithNoUserMobile", "WithUserMobile", and "WithAdminRoleMobile" examples to demonstrate the layout in mobile view.
- Updated the import statements in the examples file to reflect the correct paths.
- Updated the AppNavLayoutDesktop component to include a border at the bottom.
- Updated the AppNavLayoutMobile component to include a border at the top.
- Updated the ProfileNavWithNoUser example to include isLoading prop and remove unused imports.
- Added the ProfileNavWithUser and ProfileNavWithAdminRole examples to showcase different profile navigation scenarios.

📝 feat(back-office): add MenuNav component to handle navigation menu in the back-office app

📝 fix(back-office): update import path for AppNavLayout component in layout.tsx to match new location

* 🐛 fix(nav-link): add flex class to NavigationMenuItem to fix layout issue
✨ feat(app-nav-layout): add support for different menuNav and profileNav components in AppNavLayout stories
🐛 fix(app-nav-layout): remove unnecessary flex class from NavigationMenu in AppNavLayoutMobile
🐛 fix(app-nav-layout): remove unnecessary whitespace-nowrap class from NavigationMenuList in AppNavLayoutMobile
✨ feat(app-nav-layout): add support for different menuNav and profileNav components in AppNavLayoutMobile
✨ feat(app-nav-layout): add support for different menuNav and profileNav components in examples.tsx
✨ feat(menu-nav): add support for different menu items based on user role and add translations
🐛 fix(menu-nav): hide MenuNavDesktop component on mobile screens
✨ feat(menu-nav): add support for different menu items based on user role and add translations

* 🔧 chore(app-nav): refactor AppNavLayout.stories.tsx to add support for Super Admin role in profile navigation
🔧 chore(app-nav): refactor examples.tsx to add support for Super Admin role in profile navigation
🔧 chore(role-avatar): refactor examples.tsx to add support for Super Admin role in role avatar

* 🚀 feat(ui): add BlockchainAddress component to display and copy blockchain addresses

The BlockchainAddress component is added to the UI library. It allows displaying a blockchain address and provides the functionality to copy the address to the clipboard. The component is implemented using React and includes a Badge component to display the address and a Copy icon to trigger the copy functionality. When the address is clicked, a tooltip is shown indicating that the address has been copied. The address is truncated to 16 characters to improve readability.

* 🔧 fix(DropdownMenuItems.tsx): refactor DropdownMenuItems component to handle subItems with type 'children' properly
🔧 fix(useScreenSize.ts): update import statement for useWindowSize hook from '@uidotdev/usehooks' package
🔧 fix(icons.tsx): add Copy icon component using LuCopy icon from 'react-icons/lu' package

* 🔧 chore(package.json): update dependencies
🐛 fix(ProfileNavClient.stories.tsx): remove unused imports to improve code cleanliness
✨ feat(ProfileNavClient.tsx): add support for displaying roles and switching between roles in the profile navigation
🔧 chore(ProfileNavClient.tsx): refactor constructItems function to improve readability and maintainability

* 🌐 i18n(profile-nav): add translation for "copied-address" in English and French to improve localization
🔧 fix(profile-nav): add "copiedAddress" item to ProfileNavSectionContent component to display copied address message

* 🔧 fix(components): export toast function from useToast module to improve usability
🔧 fix(components): add className prop to div elements in DropdownMenuItems component to allow custom styling

* 🔧 chore(ProfileNav.stories.tsx): refactor ProfileNav stories to improve readability and add support for mobile viewport
🔧 chore(ProfileNavClient.tsx): refactor ProfileNavClient to improve code organization and remove unnecessary console.log statement
🔧 chore(examples.tsx): import toast from @ui/components instead of libs/ui/components to fix import path

* 🔨 refactor(ProfileNav.stories.tsx): simplify profile navigation tests by removing unnecessary async/await calls
🔨 refactor(ProfileNav.tsx): add "w-fit" class to DropdownMenuItems to ensure proper width
🔨 refactor(ProfileNav.tsx): change Spinner size from "xl" to "auto" for better responsiveness
🔨 refactor(ProfileNav.tsx): adjust spacing and alignment in ProfileNavUser and ProfileNavNotConnected components
🔨 refactor(ProfileNavRole): change Spinner size from "xl" to "auto" for better responsiveness
🔨 refactor(ProfileNavClient.tsx): remove unnecessary "overflow-hidden" class from role name in constructItems function
🔨 refactor(ProfileNavClient.tsx): simplify constructItems function by removing unnecessary subItems array
🔨 refactor(variants.tsx): add "auto" size variant for icons to allow for automatic sizing

* 🐛 fix(AppNavLayout.stories.tsx): import correct types for Meta and StoryObj to fix compilation error
✨ feat(AppNavLayout.stories.tsx): add play function to simulate user interaction and test component behavior
🐛 fix(AppNavLayout.stories.tsx): fix typo in play function to correctly target elements
✨ feat(AppNavLayout.stories.tsx): add additional stories to test different scenarios and mobile view
🐛 fix(AppNavLayoutMobile.tsx): adjust styling to center profileNav in mobile view
✨ feat(examples.tsx): add examples for different profileNav scenarios and roles

* 🔧 fix(profileNav): update profile navigation texts to match the latest translations
🌟 feat(profileNav): add support for switching to user account and switching to a different role with toast notifications for success and error messages
🌐 i18n: update English and French translations for the new profile navigation texts

* 🔧 fix(profile-nav): add missing translations for switch to my account toast titles and descriptions
🌐 feat(i18n): add English translations for switch to my account toast titles and descriptions
🌐 feat(i18n): add French translations for switch to my account toast titles and descriptions
🔧 fix(menu-nav): update menu nav links to use Next.js Link component for better navigation experience
🔧 fix(app-nav-layout): remove unnecessary import and update import for testing-library
🔧 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics

* 🔧 fix(MenuNav.tsx): update value of manage-roles to '/manage-roles' to fix broken link
🔧 fix(ProfileNavClient.tsx): import useRouter from '@next/navigation' to fix missing import
🔧 fix(ProfileNavClient.tsx): add router.push('/my-roles') to redirect to '/my-roles' after switching to my account

* updated features lib name from dashboard to events

* 🔧 fix(app): rename DashboardLoading component to EventsLoading for better naming consistency and clarity
🔧 fix(middleware.spec.ts): update nextUrl.pathname to '/en/event/event-slug' to fix redirection issue when not authenticated on sub route
🔧 fix(middleware.ts): update authPages array to include 'events' and 'events/*' for restricted access to event-related routes
🔧 fix(next.config.js): update import path for '@features/back-office/dashboard' to '@features/back-office/events' to reflect the correct module location
🔧 fix(tsconfig.base.json): remove unnecessary line breaks and update import paths for various modules to reflect the correct file locations

* 🐛 fix(@profileNav/default.tsx): import missing deepPick function from @utils to fix compilation error
✨ feat(@profileNav/default.tsx): add support for internationalization by wrapping ProfileNavClient component with NextIntlClientProvider and passing locale-specific messages
🐛 fix(layout.tsx): import missing deepPick function from @utils to fix compilation error
✨ feat(layout.tsx): add support for internationalization by wrapping Toaster component with NextIntlClientProvider and passing locale-specific messages
🐛 fix(MenuNav.tsx): fix conditional rendering of items when user has no role
🐛 fix(MenuNavMobile.tsx): remove console.log statement
🐛 fix(ProfileNavClient.tsx): fix rendering of RoleItem component by extracting it into a separate RoleItemDisplay component
✨ feat(ProfileNavClient.tsx): add support for internationalization by passing locale-specific messages to ProfileNavClient component
🌐 feat(fr.json): add missing translation for switch-to-role-toast-title

* New lib roles common with isSameRole function

* 🐛 fix(roles): set default value for eventId column in roleAssignments table to empty string to prevent NULL values
🐛 fix(test-utils): set default value for eventId in backOfficeAccounts to empty string to match schema

* 🔧 chore(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
🔧 chore(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🔧 chore(downloadPass.spec.ts): reorder imports to improve readability
🔧 chore(downloadPass.spec.ts): fix file path assertion to include file extension
🔧 chore(payment-admin.spec.ts): remove unused markEventPassOrderAsCompleted function
🔧 chore(payment-admin.spec.ts): remove unused markEventPassOrderAsCompleted test case
🔧 chore(payment-admin.ts): remove unused markEventPassOrderAsCompleted function
🔧 chore(roles-admin.spec.ts): add eventId property to test data objects
🔧 chore(blockchain-address/BlockchainAddress.tsx): reorder imports to improve readability
🔧 chore(blockchain-address/BlockchainAddress.tsx): fix import statement for useCopy

* 🐛 fix(middleware.spec.ts): update route pathnames to match correct route structure
🐛 fix(payment-admin.spec.ts): update test description to accurately reflect the scenario being tested
🐛 fix(useScreenSize.ts): update import statement to use 'react-use' instead of '@uidotdev/usehooks'

* 🐛 fix(MenuNav.tsx): handle null or undefined user role to prevent error when accessing role property
🐛 fix(ProfileNavClient.tsx): import RoleBadge from correct path to fix module resolution issue
🐛 fix(tsconfig.lib.json): exclude examples.tsx from compilation in app-nav and roles libraries
🐛 fix(RoleBadge.stories.tsx): add empty string eventId to roleOptions to fix missing property error

* 🔧 chore(middleware.ts): add 'my-roles' to the list of restricted pages in the back-office middleware

🐛 fix(ProfileNavClient.tsx): await the update function call to ensure session is updated before displaying toast and refresh the router after switching roles or redirecting to my-roles

🐛 fix(SumsubDialogClient.tsx): await the update function call when status is different to ensure proper handling of status updates

* fix: tests for payment-admin and payment-webhooks to reflect new refund policy

* 🔧 fix(menu-nav): remove unused import of Link from @next/navigation in MenuNav.tsx
🔧 fix(menu-nav): remove unused import of usePathname from @next/navigation and add useRouter import in MenuNavMobile.tsx
🔧 fix(profile-nav): refactor constructItems function to improve readability and remove unused import of usePathname from @next/navigation in ProfileNavClient.tsx
🔧 fix(select): refactor SelectItem component to remove unused wrapper prop and improve code readability in Select.tsx
🔧 fix(select-items): refactor SelectItems component to remove unused wrapper prop and improve code readability in SelectItems.tsx

* 🐛 fix(AppNavLayout.stories.tsx): import sleep function from @utils to fix compilation error
🐛 fix(AppNavLayout.stories.tsx): add sleep before interacting with elements to fix flaky tests
🐛 fix(ProfileNav.stories.tsx): import sleep function from @utils to fix compilation error
🐛 fix(ProfileNav.stories.tsx): add sleep before interacting with elements to fix flaky tests

---------

Co-authored-by: Alexandre Gouasmi <[email protected]>

* 161 UI new table and data table component (#162)

* 🐛 fix(index.mjs): replace escaped newline characters in UPLOAD_SECRET_JWT environment variable to actual newline characters for proper formatting

* 🔧 chore(next.config.js): add '@features/navigation' to the list of features in next.config.js files
🚀 feat(package.json): update 'next' package to 'canary' version for better compatibility with other dependencies
🚀 feat(package.json): update 'next-intl' package to version 3.0.1 for bug fixes and improvements
🔥 chore(package.json): remove unused dependency '@opentelemetry/api' from package.json

* 🔧 chore(global-error.tsx): remove unused import and console.log statements to improve code cleanliness and readability
🔧 chore(global-error.tsx): remove unused import to improve code cleanliness and readability
🔧 chore(ErrorClient.tsx): comment out Alert component to fix breaking issue in next apps
🔧 chore(ErrorClient.tsx): refactor Alert component to a div to fix breaking issue in next apps

* 🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(page.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(page.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(EventPassesCart.tsx): update import statements to fix compilation errors caused by incorrect import …
sebpalluel added a commit that referenced this pull request Dec 21, 2023
* 🔧 fix(preview-apps-delete.yml): remove unnecessary steps for download… (#141)

* 🔧 fix(preview-apps-delete.yml): remove unnecessary steps for downloading and getting PREVIEW_URL from cache
🔧 fix(preview-apps.yml): remove unnecessary steps for caching and installing Vercel CLI, saving environment variables to a file, and uploading env_vars.txt as an artifact
✨ feat(preview-apps.yml): add step to check if app should be built before deploying to Vercel
✨ feat(preview-apps.yml): add step to deploy preview to Vercel only if app requires build
✨ feat(preview-apps.yml): add step to comment on Pull Request with relevant links and Vercel Preview URLs for each app

* 🔧 chore(preview-apps.yml): remove unused setup-environment step to simplify workflow
🔧 chore(preview-apps.yml): move setup-environment step after checkout to ensure correct environment setup
🔧 chore(preview-apps.yml): fix cache key for Vercel CLI to ensure correct caching
🔧 chore(preview-apps.yml): fix environment variable name for build required status to ensure correct value is used in deployment step
✨ feat(preview-apps.yml): add support for caching build required status for each app to optimize deployment process
✨ feat(preview-apps.yml): add environment variable for build required status to deployment step to ensure correct deployment based on build status

* 🔧 chore(.env.local): update NX_CACHE_DIRECTORY to use .nx/cache directory for improved caching
🔧 chore(.eslintignore): update .eslintignore to ignore .nx directory for linting
🔧 chore(.eslintrc.json): update eslint configuration to use @nx/eslint-plugin and @nx/eslint-plugin/typescript
🔧 chore(.github/workflows/preview-apps-delete.yml): remove trailing whitespace at the end of the file
🔧 chore(.github/workflows/preview-apps.yml): remove trailing whitespace at the end of the file
🔧 chore(.github/workflows/staging-apps.yml): remove trailing whitespace at the end of the file
🔧 chore(.prettierignore): update .prettierignore to ignore .nx/cache directory
🔧 chore(migrations.json): update migrations.json with new migration descriptions and implementations
🔧 chore(package.json): update dependencies and devDependencies to latest versions

* 🔧 chore(next.config.js): remove unused serverActions configuration option in back-office and web apps
🔧 chore(generators): update import statement for Linter from '@nx/linter' to '@nx/eslint' in component generator spec

* 🔧 chore(project.json): update executor for lint script to use @nx/eslint:lint for consistency and compatibility with other projects

* 🔧 chore(workspace): update executor for lint target in project.json files to use @nx/eslint:lint for consistency with other projects

* 🔧 chore(.eslintrc.json): reformat and simplify ESLint configuration for better readability and maintainability

* 🔧 chore(preview-apps.yml): add 'set -e' to stop execution on error for better error handling
🔧 chore(nx.json): enable caching for various tasks to improve build and test performance

* 🔧 chore(ci.yml): remove unused workspace-lint command from parallel-commands to improve build performance
🔧 chore(nx.json): remove workspace-lint command to simplify configuration
🔧 chore(package.json): remove workspace-lint command from lint script to align with configuration changes
🔧 chore(README.md): remove workspace-lint command from deployment instructions as it is no longer needed

* 🔧 chore(preview-apps.yml): add debug flag to the script to improve troubleshooting capabilities

* 🐛 fix(preview-apps.yml): fix conditional check for BUILD_REQUIRED variable to correctly deploy preview to Vercel
✨ feat(preview-apps.yml): improve build check process by capturing output of nx-ignore command and setting BUILD_REQUIRED variable based on the output

* 🔧 chore(preview-apps.yml): add debug and error handling to app build check step for better troubleshooting

* 🐛 fix(preview-apps.yml): add debug output to check the exit status of the nx-ignore command

The debug output is added to print the exit status of the nx-ignore command. This will help in troubleshooting any issues related to the build process.

* 🐛 fix(preview-apps.yml): remove 'set -e' from app_check_build and build_app jobs to prevent job failure on non-zero exit status

* 🔧 chore(preview-apps.yml): remove unnecessary debug output and improve readability of the code
🔧 chore(staging-apps.yml): remove unnecessary debug output and improve readability of the code
🔧 chore(vercel.json): add rootDirectory property to specify the root directory of the project for Vercel deployment

* 🔧 chore(preview-apps.yml): update vercel pull command to use local config file for better organization and maintainability
🔧 chore(vercel.json): remove unnecessary rootDirectory property from vercel.json file

* 🔧 chore(staging-apps.yml): update Vercel deployment commands to use local configuration file for each app
🚀 feat(staging-apps.yml): add support for pulling Vercel configuration from local config file for each app to improve deployment process

* 🐛 fix(CartCancelled.stories.tsx): add msw handler to mock graphql query 'GetEventWithPasses' response as null
🐛 fix(CartSuccessful.stories.tsx): add msw handler to mock graphql query 'GetEventWithPasses' response as null
🐛 fix(PassList.stories.tsx): add parameters from PassCard.stories to meta parameters
🐛 fix(PassPurchase.stories.tsx): add msw handler to mock graphql query 'GetEventPassPendingOrderForEventPasses' response as null
🐛 fix(PassPurchaseSheetContainer.stories.tsx): add parameters from PassPurchase.stories to meta parameters

* 🔧 chore(preview-apps.yml): update environment variable configuration for Vercel deployment to use .vercel/.env.preview.local file instead of .env file
🔧 chore(PassList.stories.tsx): comment out unused code and remove unused imports to improve code readability and maintainability
🔧 chore(UserPassList.stories.tsx): comment out unused code and remove unused imports to improve code readability and maintainability

* 🔧 chore(preview-apps.yml): update Vercel deployment process to include build step and use prebuilt flag for faster deployments
🔨 refactor(Ping.stories.tsx): update WithNumberDoubleDigit story to have isActive set to false instead of true
🔨 refactor(Ping.tsx): update condition for rendering number in Ping component to include isActive check

* 🐛 fix(ConvertedCurrency): add support for translation key to display localized content in ConvertedCurrency component
🐛 fix(PassTotal): update translation key for total price in PassTotal component to match the changes in ConvertedCurrency component
✨ feat(PassTotal): add skeleton loading state for PassTotal component in Storybook
✨ feat(ConvertedCurrency): add support for translation key to display localized content in ConvertedCurrency component
🌐 chore(i18n): update translation keys for total price in English and French messages to match the changes in PassTotal component

* 🐛 fix(next.config.js): update remotePatterns in images configuration to match media.graphassets.com
🐛 fix(next.config.js): update remotePatterns in images configuration to match media.graphassets.com
✨ feat(next.config.js): enable serverActions experimental feature for Next.js
🐛 fix(next.config.js): update remotePatterns in images configuration to match media.graphassets.com
✨ feat(next.config.js): enable serverActions experimental feature for Next.js
🐛 fix(tsconfig.json): exclude examples.tsx files from TypeScript compilation
🐛 fix(AppNavLayout.tsx): move mobile navigation menu to a separate component
✨ feat(AppNavLayoutDesktop.tsx): create AppNavLayoutDesktop component for desktop navigation
✨ feat(AppNavLayoutMobile.tsx): create AppNavLayoutMobile component for mobile navigation
🐛 fix(AppNavLayout.tsx): move mobile navigation menu to a separate component

* 🐛 fix(preview-apps.yml): remove unnecessary variable assignment in vercel build command to fix build process

The variable assignment in the vercel build command was unnecessary and caused issues during the build process. Removing it will fix the build process.

* 🔧 chore(preview-apps.yml): add NODE_OPTIONS environment variable to increase max old space size for better memory management during build process

* 🔧 chore(site.ts): comment out unused site configuration properties to improve code readability and maintainability

🔧 chore(layout.tsx): comment out unused metadata properties to improve code readability and maintainability

* 137 staging bugs (#144)

* add: maxDuration to 30 seconds for route stripe/checkout to match stripe timeout and give more time to checkOrder

fix: alchemy fix, switching from data() thirdweb from all to only one nft to get the base ipfs tokenUri

fix: pass not showing in /pass due to eventParameters not having dates

fix: french word missing in sentence

fix: back-event pass url in pass view and max maxDuration for claim/order route

* 🐛 fix(preview-apps.yml): pass global config file to vercel deploy command to fix issue with deploying prebuilt apps

* 🔨 refactor(SinglePass.stories.tsx): remove unused import and reorganize import statements for better readability
🐛 fix(SinglePass.stories.tsx): update button names to match the changes in the component for better consistency and accuracy

* 🐛 fix(action.ts): throw error if event is not found or has no date to handle edge cases
🔧 chore(nx.json): increase parallelism to 5 for faster execution of tasks

* 📝 chore(eslint): add .eslintrc.ci.json configuration file to enforce additional rules for CI environment
🔧 chore(eslint): remove eslint-plugin-prettier from .eslintrc.json as it is not needed
🔧 chore(eslint): update import/no-cycle rule to be turned off in .eslintrc.json

* 🔧 chore(.eslintrc.json): remove unnecessary line breaks and align plugin array for better readability
🔧 chore(.eslintrc.json): remove unused rules and align import parser array for better readability

* 🔧 chore(.eslintrc.ci.json): extend configuration from .eslintrc.json to maintain consistency and avoid duplication of rules
🔧 chore(ci.yml): update linting command to use --eslintConfig flag instead of --config flag to align with changes in lint-staged.config.js
🔧 chore(lint-staged.config.js): update linting command to use --eslintConfig flag instead of --config flag to align with changes in ci.yml

---------

Co-authored-by: sebpalluel <[email protected]>

* 145 back office cleanup main layout and put real menu similarly to web (#147)

* 🐛 fix(main.ts): remove unnecessary code and imports to improve code readability and maintainability
✨ feat(main.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(preview.tsx): remove unnecessary code and imports to improve code readability and maintainability
✨ feat(preview.tsx): add DarkModeDecorator, I18nextStoryDecorator, and localStorageResetDecorator decorators for storybook customization
🐛 fix(preview.tsx): remove unnecessary code and imports to improve code readability and maintainability

* 🚀 feat(ProfileNav): import ProfileNav as named export to improve code readability and maintainability
🚀 feat(ProfileNav): remove default export of ProfileNav to align with named export
🚀 feat(ProfileAvatar): import ProfileAvatar as named export to improve code readability and maintainability
🚀 feat(ProfileAvatar): remove default export of ProfileAvatar to align with named export

* 📦 chore(storybook): add main.ts configuration file to back-office storybook to specify story files and features
📦 chore(storybook): add preview-head.html file to back-office storybook to include Google Fonts link for Inter font
📦 chore(storybook): add preview.tsx file to back-office storybook to configure decorators and loaders
📦 chore(project.json): update port configuration for back-office storybook to use port 4403
📦 chore(tsconfig.json): add tsconfig.storybook.json reference to back-office tsconfig.json to include story files in compilation
📦 chore(tsconfig.storybook.json): create tsconfig.storybook.json file for back-office storybook to specify include and exclude paths
🔥 chore(Dockerfile.web.local): remove Dockerfile.web.local file as it is no longer needed
🔥 chore(storybook.preview.base.tsx): remove storybook.preview.base.tsx file as it is no longer needed
📦 chore(tsconfig.base.json): add back-office app-nav-ui to tsconfig.base.json to include its source files in compilation

* 📦 chore(app-nav): add app-nav library to back-office feature

📝 docs(app-nav): add README.md file for app-nav library

🔧 chore(app-nav): add eslint configuration for app-nav library

🔧 chore(app-nav): add jest configuration for app-nav library

🔧 chore(app-nav): add package.json for app-nav library

🔧 chore(app-nav): add project.json for app-nav library

🔧 chore(app-nav): add index.ts file for app-nav library

🔧 chore(app-nav): add hello-server.tsx file for app-nav library

🔧 chore(app-nav): add tsconfig.json for app-nav library

🔧 chore(app-nav): add tsconfig.lib.json for app-nav library

🔧 chore(app-nav): add tsconfig.spec.json for app-nav library

🔧 chore(app-nav): update tsconfig.base.json to include app-nav library

* move app-nav-ui to app-nav naming

* 🚀 feat(storybook): update storybook configuration for back-office and web apps

📝 chore(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics

🔧 chore(tsconfig.base.json): update paths for various modules and libraries

* 🚀 feat(app-nav): add ProfileNavClient component to export React client components for profile navigation
🔥 chore(app-nav): remove unused HelloServer component
🆕 feat(app-nav): add ProfileNavClient.stories.tsx to showcase the usage of ProfileNavClient component
🆕 feat(app-nav): add ProfileNavClient component to handle profile navigation logic and UI rendering

* 🚀 feat(app-nav): add ProfileNavClient component to handle profile navigation for authenticated users

🚧 chore(app-nav): add ProfileNavClient.stories.tsx to showcase the usage of ProfileNavClient component

🔧 fix(app-nav): fix import statements in ProfileNavClient.tsx to resolve module paths

🔧 fix(app-nav): fix import statements in examples.tsx to resolve module paths

* 🔧 fix(profileNav/default.tsx): update import path for ProfileNavClient to use the new location in @features/app-nav
🔧 fix(layout.tsx): reorder NextAuthProvider and AuthProvider components to fix authentication flow
🔧 fix(next.config.js): update import path for @features/appNav/ui to @features/appNav to match the actual location

* 🚀 feat(default.tsx): add new component ProfileNavSection to handle profile navigation in the app
🚀 feat(layout.tsx): add CurrencyProvider to provide currency context to the app
🔥 chore(ProfileNavClient.tsx): remove unused component ProfileNavClient
🔧 chore(next.config.js): update import paths for appNav related features

* ✨ feat(settings/page.tsx): add new settings page component to the back office app

🐛 fix(manifest.json): update short name and name fields for back office and web apps to improve clarity and branding

* 🔧 chore(jest.config.ts): remove unnecessary transform configuration and update moduleFileExtensions
🔧 chore(middleware.ts): update authPages paths to remove leading slashes for consistency
🔧 chore(tsconfig.spec.json): include *.spec.ts files in the test configuration

* 🔧 chore(middleware.spec.ts): add unit tests for middleware function
🔧 chore(middleware.ts): add support for sub routes in authPages array to restrict access to dashboard sub routes

* 🚀 feat(chromatic-back-office.yml): add workflow for Chromatic Back-Office to automatically publish changes to Chromatic on pull requests and pushes to staging branch
🚀 feat(chromatic-web.yml): update paths for Chromatic Web workflow to include libs/features and exclude libs/features/back-office
🚀 feat(package.json): add script for building Storybook for Back-Office component library

* 149 web add new orderstatus is minting (#150)

* fix: add png extension to upload filepath

* add: is_minting order status

* rename: getEventPassOrderPurchased

* add: is_minting to trigger

* add: error and refunded to update eventPassOrder sums

* update: tests for getEventPassOrderPurchasedForEventPass/es

* update: tests for eventPassOrder and migration for update eventPassOrder sums

* add: setRates in local in layout.tsx

* add: bytescale png verification

* add: new minting success message

* fix: tests for new getPassorganizer/User

* fix: eventPassOrder_by_pk for type in nft EventWithContractMetada

* fix: eventPassOrder_by_pk in routes.ts claim/order

* fix: squash migrations

* fix: add story for minting success in /pass

* fix: add test for eventPassOrder is_minting status

* fix: tests for eventPassOrder with is_minting

* add: generateMetadata in page.tsx for organizer/organizerSlug/event/e… (#151)

* add: generateMetadata in page.tsx for organizer/organizerSlug/event/eventSlug

* add: locale for language and generateLocaleURLs for alternates languages

* RBAC back-office (#153)

* ✨ feat(audit): add audit functionality to track changes in tables

This commit adds the necessary SQL scripts to implement an audit functionality for tracking changes in tables. The audit functionality is based on the 2ndQuadrant/audit-trigger project with a few modifications. The changes include:
- Requiring PostgreSQL version 10 or higher
- Storing row data in jsonb format

The commit includes the following changes:
- Creates a new schema called "audit" to store the audit tables and trigger functions
- Creates a table called "audit.logged_actions" to store the history of auditable actions on audited tables
- Defines a trigger function called "audit.if_modified_func()" to track changes to a table at the statement and/or row level
- Defines a function called "audit.audit_table()" to add auditing support to a table, allowing for row-level changes to be logged with full client query text
- Provides convenience call wrappers for the "audit.audit_table()" function to simplify the process of adding auditing support to a table

The audit functionality allows for customization through optional parameters in the CREATE TRIGGER call, including whether to log the query text and which columns to ignore in updates.

✨ feat(roles_and_role_assignments): add migration scripts for roles and role_assignments tables

The migration scripts add the following changes:
- Create the "roles" table to store different user roles with their values as primary keys.
- Insert default roles into the "roles" table.
- Add comments to describe each role in the "roles" table.
- Create the "role_assignments" table to assign roles to accounts, allowing a many-to-many relationship.
- Add comments to explain the purpose and design of the "role_assignments" table.
- Enable auditing for the "role_assignments" table to record row changes and SQL text.

These changes are necessary to implement the Role-Based Access Control (RBAC) system integration within the Offline platform.

📦 chore(audit): add audit_logged_actions.yaml table to audit schema
📦 chore(audit): add public_role_assignments.yaml table to public schema
📦 chore(audit): add public_roles.yaml table to public schema
📦 chore(audit): update tables.yaml to include new tables audit_logged_actions.yaml, public_role_assignments.yaml, and public_roles.yaml

🔧 chore(.env.local): add HASURA_GRAPHQL_DEV_MODE=true to enable development mode in local environment
🔧 chore(.env.test.jest): add HASURA_GRAPHQL_DEV_MODE=true to enable development mode in test environment

📦 chore(roleAssignments): rename table and file names to improve consistency and readability

📝 docs(roleAssignments): update table comment to provide more detailed explanation of its purpose and design

🔧 fix(roleAssignments): update migration scripts to use correct table name and schema

🐛 fix(docker-compose.yaml): add x-hasura-organizer-id claim to HASURA_GRAPHQL_JWT_SECRET in order to support organizer role in authorization
✨ feat(docker-compose.yaml): update HASURA_GRAPHQL_JWT_SECRET in test/docker-compose.yml to include x-hasura-organizer-id claim for testing purposes

🔧 fix(index.spec.ts): update mockOrganizer object to include role property for better test coverage
🔧 fix(index.spec.ts): update path in test case to use mockOrganizer's role.organizerId instead of organizerId
🔧 fix(index.ts): update getJwtAccessOptions function to handle access depending on user's role
🔧 fix(next-auth.ts): import RoleAssignments type from '@gql/shared/types' for better type checking

🔍 chore(.opencommitignore): add schema.graphql and schema.json to the list of ignored files to exclude them from version control

🔧 chore(.opencommitignore): update ignore patterns for schema.graphql and schema.json files
🐛 fix(Dashboard/layout.tsx): fix condition to check if user is an organizer by accessing the role property
🐛 fix(Dashboard/page.tsx): fix condition to check if user is an organizer by accessing the role property

🔒 chore(public_eventParameters.yaml): add insert permissions for the 'organizer' role

🔒 chore(public_eventParameters.yaml): add check condition for insert permissions of 'organizer' role to ensure the user has the required role assignments

🔒 chore(public_eventParameters.yaml): set 'organizerId' column value to 'X-Hasura-Organizer-Id' for insert permissions of 'organizer' role

🔒 chore(public_eventParameters.yaml): specify columns for insert permissions of 'organizer' role

🔧 chore(hasura): update role names and descriptions for better clarity and organization

The role names and descriptions in the `public_eventParameters.yaml` file and the `up.sql` and `down.sql` migration scripts have been updated to use the prefix "organizer_" to indicate that these roles are specific to organizers. This change improves clarity and organization within the codebase.

🔒 chore(.env.local): update JWT secrets for authentication to improve security
🔒 chore(next.config.js): update NEXTAUTH_SECRET to improve security
🔒 chore(docker-compose.yaml): update HASURA_GRAPHQL_JWT_SECRETS to improve security
🔒 chore(tools/test/docker-compose.yml): update HASURA_GRAPHQL_JWT_SECRETS to improve security

🐛 fix(route.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(route.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(index.spec.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(index.spec.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(index.spec.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(index.ts): remove unnecessary parameter from createOptions() function call
🐛 fix(getCurrentUser.ts): remove unnecessary parameters from createOptions() and getServerSession() function calls
🐛 fix(getJwt.ts): remove unnecessary parameter from nextAuthCookieName() function call
🐛 fix(getJwt.ts): remove unnecessary parameters from getToken() function call
🐛 fix(getSession.ts): remove unnecessary parameters from createOptions() and getServerSession() function calls

🔧 fix(nextAuthCookieName.ts): add support for appending '.back-office' to the cookie name if isBackOffice() returns true
🔧 fix(index.ts): refactor generateJwt function to accept user object and secret as arguments, and generate JWT with user and role information for marketplace users
🔧 fix(index.ts): refactor usersJwt object to use generateJwt function with user object, secret, and role for marketplace users

📝 chore(env): update HASURA_VERSION to v2.35.0 in .env.local file to use the latest version of Hasura GraphQL Engine
📝 chore(docker-compose): update hasura/graphql-engine image version to v2.35.0 in docker-compose.yaml file to use the latest version of Hasura GraphQL Engine
📝 chore(hasura): update Hasura CLI version to v2.35.0 in Dockerfile to use the latest version of Hasura CLI
📝 chore(test): update hasura/graphql-engine image version to v2.35.0.cli-migrations-v3 in docker-compose.yml file to use the latest version of Hasura GraphQL Engine for testing purposes

🐛 fix(global-error.tsx): remove unnecessary console.log statement in Error component
🔀 merge(gql): add support for back-office-jwt and marketplace-jwt headers in fetchDataForTest function
🔧 chore(jest.setup.back-office.ts): add environment variables for back-office app and NEXTAUTH_SECRET

📦 chore(docker-compose.yaml): update PostgreSQL image version from 13 to 16 for both db and test-db services to use the latest version

🔧 refactor(features-pass-cache.ts): update cache methods to use kv namespace for better readability and maintainability
🔧 refactor(index.spec.ts): update cache methods to use kv namespace for better readability and maintainability
🔧 refactor(index.ts): rename client property to kv and update cache methods to use kv namespace for better readability and maintainability

📦 chore(admin): add admin role library

📝 Add .eslintrc.json configuration file for the admin role library to extend the root .eslintrc.json file and ignore specific patterns.

📝 Add .swcrc configuration file for the admin role library to configure the SWC compiler options.

📝 Add README.md file for the admin role library.

📝 Add jest.config.ts file for the admin role library to configure Jest for unit testing.

📝 Add package.json file for the admin role library.

📝 Add project.json file for the admin role library to define the project structure and targets.

📝 Add index.ts file for the admin role library to export the roles-admin module.

📝 Add roles-admin.ts file for the admin role library to implement the RoleInvitationService class and its methods.

📝 Add tsconfig.json file for the admin role library to extend the base tsconfig and configure the compiler options.

📝 Add tsconfig.lib.json file for the admin role library to extend the tsconfig.json and configure the compiler options for the library.

📝 Add tsconfig.spec.json file for the admin role library to extend the tsconfig.json and configure the compiler options for unit testing.

🔧 chore(roles_and_role_assignments): update down.sql and up.sql to add "invitedById" column and unique constraint on roleAssignments table
✨ feat(account.query.gql): add new query GetAccountByAddress to fetch account by address
📦 add(roles/roleAssignments.mutation.gql): add new mutation CreateRoleAssignment to insert a role assignment into roleAssignments table

🔧 chore(roleAssignments.yaml): add object and remote relationships, select and delete permissions to improve data model and access control

📝 docs(roleAssignments.query.gql): add new queries to fetch role assignments with organizer and inviter information

📝 docs(RoleAssignmentsFields.fragement.gql): add fragment for role assignments fields

🔧 chore(roles-admin.ts): refactor and improve code readability and semantics
🚀 feat(roles-admin.ts): add support for accepting and declining role invitations
🐛 fix(roles-admin.ts): fix bugs related to invitation verification and retrieval

🔧 chore(roles-admin.ts): refactor RoleInvitationService constructor to accept an optional cache parameter for better testability and flexibility
🔧 chore(roles-admin.spec.ts): add tests for RoleInvitationService class methods to ensure proper functionality and error handling
🔧 chore(index.ts): add back-office user accounts and JWT generation for testing purposes

📦 chore(roles-api): add ESLint configuration file

📦 chore(roles-api): add README.md file

📦 chore(roles-api): add Jest configuration file

📦 chore(roles-api): add package.json file

📦 chore(roles-api): add project.json file

📦 feat(roles-api): add index.ts file

📦 feat(roles-api): add getMyRoles function

📦 feat(roles-api): add getMyRolesWithOrganizerAndInviterInfos function

📦 feat(roles-api): add getMyRolesWithOrganizerInfos function

📦 chore(roles-api): add tsconfig.json file

📦 chore(roles-api): add tsconfig.lib.json file

📦 chore(roles-api): add tsconfig.spec.json file

🔧 chore(public_account.yaml): remove unused remote_relationships block to simplify the configuration
🔧 chore(1698942028885_roles_and_role_assignments): add NOT NULL constraint to "accountId", "invitedById", and "role" columns for roleAssignments table
🔧 chore(1699117141773_alter_table_public_account_drop_column_organizerId): add migration scripts to drop and add "organizerId" column in the "account" table
🔧 chore(0_account.sql): remove "organizerId" column from INSERT statements in the "account" seed data
🔧 chore(AccountFields.fragment.gql): remove "organizerId" field from AccountFields fragment
🔧 chore(index.ts): update backOfficeAccounts object to use satisfies keyword instead of casting to AppUser

📝 chore(roleAssignments.sql): add roleAssignments seed file to populate roleAssignments table with initial data
📝 chore(db): update SeedTable enum to include roleAssignments table
📝 chore(gql): add alpha_organizer2_admin_user to backOfficeAccounts to simulate an organizer admin user with a dummy organizer ID
📝 chore(deleteAllData.js): add roleAssignments table to tablesToDelete list to ensure it gets deleted when running deleteAllData script

🔥 refactor(migrations): remove unnecessary migration files and update account seed data

🔥 refactor(migrations): remove unnecessary migration files and update account seed data to remove "isOrganizer" column and update "emailVerified" column values

🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(index.ts): import Currency_Enum_Not_Const from '@currency/types' to fix missing import error
🐛 fix(index.ts): remove unused imports to improve code cleanliness
✨ feat(index.ts): add supportedCurrencies property to Currency class to store supported currencies as a string
✨ feat(index.ts): initialize supportedCurrencies property in Currency class constructor to join values of Currency_Enum_Not_Const enum
🐛 fix(index.ts): update getRate method in Currency class to include symbols query parameter in API URL to fetch rates for supported currencies only
🐛 fix(tsconfig.json): add "preserveConstEnums": true to preserve const enums during compilation
🐛 fix(tsconfig.lib.json): add "preserveConstEnums": true to preserve const enums during compilation
🐛 fix(currency-types.ts): update Currency_Enum_Not_Const enum values to start with uppercase letters for consistency
🐛 fix(next-currency-cache.spec.ts): update import statements to fix missing import errors
✨ feat(CurrencyCache): add CurrencyCache class to handle caching of currency rates
✨ feat(CurrencyCache): implement getCacheKey method to generate cache key for a given currency
✨ feat(CurrencyCache): implement withCacheKey method to wrap a function with cache key generation logic
✨ feat(CurrencyCache): implement setRate method to fetch rate for a currency from Currency API and store it in Cache API
✨ feat(CurrencyCache): implement getRate method to fetch rate for a currency from Cache API
✨ feat(CurrencyCache): implement setRates method to set rates for all currencies by calling setRate method for each currency
✨ feat(CurrencyCache): implement getRates method to fetch rates for all currencies by calling getRate method for each currency
✨ feat(CurrencyCache): implement populateCacheIfEmpty method to populate cache with rates if cache is empty
🐛 fix(CurrencyProvider): update import statement to fix missing import error
✨ feat(CurrencyProvider): create instance of CurrencyCache class to handle caching of currency rates
✨ feat(CurrencyProvider): update useEffect hook to call getRates method of CurrencyCache instance

🔧 chore(roles-api): update jest configuration to ignore integration tests and add new integration test configuration
✨ feat(roles-api): add integration test configuration for roles-api
🔧 chore(roles-api): update project.json to include new test-integration executor and configuration
✅ test(roles-api): add integration test for getMyRoles function
✅ test(roles-api): add unit test for getMyRoles function
🔧 chore(roles-api): update tsconfig.spec.json to include types from the types folder in the coverage calculation

🔀 refactor(index.ts): reorganize and optimize user client functions

🔀 refactor(index.ts): reorganize and optimize back-office user client functions

✨ feat(index.ts): add support for isBackOffice parameter in alphaUserClient and betaUserClient functions to generate appropriate JWTs for back-office users

🐛 fix(roleAssignments.sql): fix incorrect value in accountId field in one of the seed records

🚀 feat(docker-compose.yaml): add "organizer_human_resources" service to the list of services in the docker-compose file to support new functionality related to human resources management in the organization

🐛 fix(roles_role_assignments_account): add "organizer_human_resources" role to the list of roles in the up and down migration scripts to enable administrative permissions for managing human resources in the organization

🚀 feat(docker-compose.yml): add "organizer_human_resources" service to the list of services in the test docker-compose file to support testing of new functionality related to human resources management in the organization

🔥 refactor(public_eventParameters.yaml): remove unused insert_permissions block to simplify the configuration
🔥 refactor(public_nftTransfer.yaml): remove unused select_permissions block to simplify the configuration

🔧 fix(roles-admin.spec.ts): add missing cache operations for srem and sadd
✨ feat(roles-admin.ts): add support for managing inviter's sent invitations in cache

📦 chore: add roleAssignments.query.gql and RoleAssignmentsFields.fragment.gql files to the project
🐛 fix(roles-admin.ts): fix expiration time calculation for invitation creation to set it to 24 hours from now
✨ feat(roles-admin.ts): add invitationForRoleExists method to check if an invitation or role assignment already exists for a given role, organizer, and event
🐛 fix(roles-admin.ts): perform cleanup and throw error if invitation has expired during verification or acceptance of invitation

🐛 fix(types): update type definition for EventPassOrderWithContractData to use correct GraphQL query response type
✨ feat(roles-admin): add support for checking if an invitation for a role exists for a given inviter, invited, role, organizerId, and eventId
✅ test(roles-admin): add tests for invitationForRoleExists and getInvitationsByInviter methods in RoleInvitationService class
🐛 fix(roles-admin): fix bug in invitationForRoleExists method where it was not returning false when the invited user does not have the given role for the given organizer and event
✨ feat(roles-admin): add support for filtering out null results from expired or non-existent invitations in getInvitationsByInviter method
🐛 fix(roles-admin): fix bug in fetchInvitation method where it was not marked as public

🐛 fix(roles-admin.spec.ts): remove unnecessary mockResolvedValue for cache get method
✨ feat(roles-admin.spec.ts): add test cases for fetchInvitation method to cover different scenarios

🐛 fix(roles-admin.spec.ts): fix incorrect property names in invitationForRoleExists and verifyInvitation functions

🐛 fix(roles-admin.spec.ts): import RoleAuthorization class to fix reference error
✨ feat(roles-admin.spec.ts): add tests for RoleAuthorization.inviteAccountWithRole method to ensure proper role authorization logic
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move InviteAccountWithRoleProps interface to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorization class to its own file for better organization and separation of concerns
🚚 chore(roles-admin.ts): move RoleAuthorizationError class to its own file for better organization and separation of concerns

📦 chore(roles-actions): add roles-actions library

✨ feat(roles-actions): add .eslintrc.json configuration file for roles-actions library

✨ feat(roles-actions): add README.md file for roles-actions library

✨ feat(roles-actions): add jest.config.ts configuration file for roles-actions library

✨ feat(roles-actions): add package.json file for roles-actions library

✨ feat(roles-actions): add project.json configuration file for roles-actions library

✨ feat(roles-actions): add index.ts file for roles-actions library

✨ feat(roles-actions): add inviteAccountWithRole.ts file for roles-actions library

✨ feat(roles-actions): add inviteAccountWithRole.spec.ts file for roles-actions library

✨ feat(roles-actions): add tsconfig.json configuration file for roles-actions library

✨ feat(roles-actions): add tsconfig.lib.json configuration file for roles-actions library

✨ feat(roles-actions): add tsconfig.spec.json configuration file for roles-actions library

🔧 chore(public_roleAssignments.yaml): add insert and delete permissions for organizer_human_resources and organizer_super_admin roles
🔧 chore(public_roleAssignments.yaml): add insert and delete permissions for organizer_human_resources and organizer_super_admin roles
🔧 chore(inviteAccountWithRole.spec.ts): refactor test cases to use mock functions and improve readability

feat: updated next-auth to handle RBAC with user.role for backoffice + tests

feat: account now return roles list

feat: permissions for roleAssignments + roles relationship in account

🐛 fix(index.spec.ts): remove unused imports and variables
🐛 fix(index.spec.ts): remove unused mockReq variable
🐛 fix(index.spec.ts): remove commented out code
🐛 fix(index.spec.ts): remove unused mockToken variable
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in back office
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in back office and updated role
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in back office and unauthorized role
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in back office and unauthorized kyc status
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in web app
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in web app and no role
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in web app and unauthorized role
✨ feat(index.spec.ts): add test case for createOptions callbacks.jwt function with user in web app and unauthorized kyc status
🐛 fix(index.ts): remove unused import
🐛 fix(index.ts): remove unused variable
✨ feat(index.ts): add check for user role and return undefined if role is not defined
✨ feat(index.ts): add check for user role and return undefined if app is not back office
✨ feat(index.ts): add check for user role and return undefined if user kyc is not validated
🐛 fix(next-auth.ts): remove unused import
🐛 fix(next-auth.ts): remove unused type import
✨ feat(next-auth.ts): update AppUser type to use Role type instead of RoleAssignments type
🐛 fix(index.ts): remove unused import
🐛 fix(index.ts): remove unused type import
✨ feat(index.ts): export Role type

🔥 refactor(jest.config.js): remove unused jest configuration file

🔥 refactor(next/hasura/utils): remove unused files and configurations

🔥 refactor(next/hasura/utils/src/index.ts): remove unused enum and types

🔥 refactor(next/hasura/utils/tsconfig.json): remove unused tsconfig file

🔥 refactor(next/hasura/utils/tsconfig.lib.json): remove unused tsconfig file

🔥 refactor(next/hasura/utils/tsconfig.spec.json): remove unused tsconfig file

🔥 refactor(tsconfig.base.json): remove unused paths for next/hasura/utils

🔀 refactor(index.ts): add optional levelName parameter to isUserKycValidated function for more flexible validation
🐛 fix(index.ts): fix isUserKycValidated function to properly validate user's kyc levelName if provided

📦 chore(roles): add ESLint configuration file for roles feature

📦 chore(roles): add README.md file for roles feature

📦 chore(roles): add Jest configuration file for roles feature

📦 chore(roles): add package.json file for roles feature

📦 chore(roles): add project.json file for roles feature

📦 chore(roles): add index.ts file for roles feature

📦 chore(roles): add RoleBadge.stories.tsx file for RoleBadge component

📦 feat(RoleBadge): implement RoleBadge component to display role badges

📦 chore(roles): add tsconfig.json file for roles feature

📦 chore(roles): add tsconfig.lib.json file for roles feature

📦 chore(roles): add tsconfig.spec.json file for roles feature

📦 chore(i18n): update en.json and fr.json with translations for RoleBadge component

📦 chore(role-avatar): add RoleAvatar component and its stories

📝 Add RoleAvatar component and its related files:
- Added RoleAvatar.stories.tsx file to showcase the RoleAvatar component in Storybook.
- Added RoleAvatar.tsx file to implement the RoleAvatar component.
- Added examples.tsx file to provide example data for the RoleAvatar component.

The RoleAvatar component is used to display an avatar for a specific role with its associated organizer. It takes a role object as a prop, which includes information about the organizer such as their name, image URL, and slug. The component renders an avatar with the organizer's image if available, or falls back to displaying the organizer's initials if no image is provided.

The RoleAvatar component is now ready to be used in the application.

📦 chore(gql): add OrganizerFields fragment to improve code reusability and readability in roleAssignments queries
🔀 merge(gql): use OrganizerFields fragment in roleAssignments queries to fetch organizer information
🔀 merge(roles): add RoleWithOrganizer type to represent a role with associated organizer information

🚀 feat(app-nav): add ProfileAvatar component to app-nav library

🐛 fix(app-nav): fix className assignment in ProfileAvatar component

🚀 feat(app-nav): add ProfileNav and ProfileNavSkeleton components to app-nav library

🚀 feat(app-nav): add ProfileNavClient component to app-nav library

🚀 feat(app-nav): add ProfileNavClientExample and ProfileNavExample components to app-nav library

* 🐛 fix(docker-compose.yml): fix syntax error by adding missing closing double quote for "organizer_guest" service name

* 🐛 fix(layout.tsx): import CurrencyCache instead of individual functions from currency-cache to improve code readability and maintainability
🐛 fix(layout.tsx): change getRate and setRates function calls to methods of CurrencyCache class to improve code readability and maintainability
🐛 fix(next.config.js): add webpack configuration to resolve fs and path modules to fix build errors
🐛 fix(next.config.js): add webpack configuration to resolve fs and path modules to fix build errors
🐛 fix(layout.tsx): import CurrencyCache instead of individual functions from currency-cache to improve code readability and maintainability
🐛 fix(layout.tsx): change getRate and setRates function calls to methods of CurrencyCache class to improve code readability and maintainability
🐛 fix(next.config.js): add webpack configuration to resolve fs and path modules to fix build errors
🐛 fix(next.config.js): add webpack configuration to resolve fs and path modules to fix build errors
🐛 fix(index.ts): change ProfileAvatarProps type import to use 'type' keyword for consistency
🐛 fix(setRates.ts): import CurrencyCache instead of next-currency-cache to improve code readability and maintainability
🐛 fix(next-currency-cache.ts): remove unnecessary 'use server' statement
🐛 fix(roles-admin.ts): add null check for user.role to prevent potential errors

* fix: alchemy network undefined, change in AlchemyNFTACtivityWebHookEvent

* fix: alchemy tests and network in event

* 🔧 chore(handleAccount.spec.ts): add test case for null roles in handleAccount function

* 🐛 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🐛 fix(default.tsx): refactor ProfileNavSection to accept locale as a parameter to improve reusability
✨ feat(default.tsx): add Suspense component to handle loading state and render ProfileNavSectionContent when locale is available
🐛 fix(default.tsx): refactor ProfileNavSectionContent to use getCurrentUser and getMyRolesWithOrganizerInfos functions to improve data fetching
✨ feat(default.tsx): pass roles and account props to ProfileNavClient component to display user role and account information
🐛 fix(index.ts): export ProfileNavSkeleton component to fix import error in other files
🐛 fix(ProfileNav.stories.tsx): remove unused imports and fix import path for ProfileNavSkeleton component
✨ feat(ProfileNav.stories.tsx): add new stories for different scenarios of ProfileNav component
🐛 fix(ProfileNav.tsx): refactor ProfileNav component to split rendering logic into separate functions for better readability
✨ feat(ProfileNav.tsx): add ProfileNavUser, ProfileNavNotConnected, and ProfileNavRole components to handle different user states and roles
🐛 fix(ProfileNavClient.tsx): refactor ProfileNavClient component to use SafeUser type from @next/auth and RoleWithOrganizer type from @roles/types
✨ feat(ProfileNavClient.tsx): add matchingRole variable to find the matching role for the current user and pass it to ProfileNav component
🐛 fix(examples.tsx): fix import path for ProfileNav component
✨ feat(examples.tsx): add user object for testing purposes
🐛 fix(RoleAvatar.stories.tsx): remove unused import and fix import path for RoleAvatar component
✨ feat(RoleAvatar.stories.tsx): add new stories for different scenarios of RoleAvatar component
🐛 fix(RoleAvatar.tsx): fix fallback value for organizer name and profile image in RoleAvatar component
✨ feat(role-avatar/examples.tsx): rename organizerRole to organizerRoleAdmin for better clarity
🐛 fix(index.ts): export RoleBadge component from lib/role-badge/RoleBadge

* 🔧 fix(ProfileNav.tsx): update CSS classes to improve readability and maintain consistency
🔧 fix(RoleBadge.tsx): update import path for Badge component to match new file structure
🔧 fix(index.ts): update export statement for Badge component to include type BadgeProps

* add make reset-docker to ci

make ci commands sequential

🔧 chore(ci.yml): update parallel commands in CI workflow to run docker:test and docker:services commands concurrently
🐛 fix(docker-compose.yaml): fix JSON path in x-hasura-* headers to correctly access values

* 🐛 fix(ProfileNav.stories.tsx): include WithUser configuration in Skeleton story to ensure consistent rendering
🐛 fix(RoleAvatar.tsx): remove 'role' prop from Omit type to prevent TypeScript error
✨ feat(RoleAvatar.tsx): destructure 'props' object in function signature for improved readability and maintainability
🔧 chore(tsconfig.lib.json): exclude example and story files from TypeScript compilation to improve build performance

* 🔨 refactor(ProfileNav.tsx): improve readability and semantics of ProfileNav component
🐛 fix(ProfileNav.tsx): replace span element with div element for better accessibility and styling

---------

Co-authored-by: Alexandre Gouasmi <[email protected]>

* 🐛 fix(layout.tsx): fix missing rates variable assignment in RootLayout function to prevent undefined error
✨ feat(layout.tsx): add support for fetching and passing currency rates to CurrencyProvider component in RootLayout function

* ⬆️ chore(package.json): update @sentry/nextjs and @sentry/utils to version 7.77.0 for critical security fix
⬇️ chore(package.json): downgrade next-auth to version 4.23.1 to resolve compatibility issues with SIWE

* try to check if SIWE working with last versions of packages

* try to remove webpack to check if SIWE issue fixed

* try to remove webpack to check if SIWE issue fixed

* 155 back office roles UI app nav (#157)

* 🚀 feat(ui): add SelectItems component to handle rendering of select items in the UI library
🔧 chore(ui): add SelectItems stories to showcase different usage scenarios and functionality of the component

🔨 refactor(DropdownMenuItemClient.tsx): reorder imports to improve readability and maintain consistency
🔨 refactor(DropdownMenuItems.tsx): reorder imports to improve readability and maintain consistency
🔨 refactor(NavigationMenu.tsx): reorder imports to improve readability and maintain consistency

🔧 fix(ProfileNav.tsx): remove unnecessary class names and improve layout in ProfileNav component
🔧 fix(ProfileNav.stories.tsx): refactor WithAdminRoleMobile to reuse WithAdminRole configuration and update viewport
🔧 fix(ProfileNav.tsx): remove unnecessary class names and improve layout in ProfileNavUser and ProfileNavNotConnected components
🔧 fix(ProfileNav.tsx): remove unnecessary class names and improve layout in ProfileNavRole component

🚀 feat(app-nav): add new examples for AppNavLayout component

- Added new examples for the AppNavLayout component to showcase different scenarios.
- Added the "WithUser" example to demonstrate the layout with a user profile navigation.
- Added the "WithAdminRole" example to demonstrate the layout with an admin role profile navigation.
- Added the "WithNoUserMobile", "WithUserMobile", and "WithAdminRoleMobile" examples to demonstrate the layout in mobile view.
- Updated the import statements in the examples file to reflect the correct paths.
- Updated the AppNavLayoutDesktop component to include a border at the bottom.
- Updated the AppNavLayoutMobile component to include a border at the top.
- Updated the ProfileNavWithNoUser example to include isLoading prop and remove unused imports.
- Added the ProfileNavWithUser and ProfileNavWithAdminRole examples to showcase different profile navigation scenarios.

📝 feat(back-office): add MenuNav component to handle navigation menu in the back-office app

📝 fix(back-office): update import path for AppNavLayout component in layout.tsx to match new location

* 🐛 fix(nav-link): add flex class to NavigationMenuItem to fix layout issue
✨ feat(app-nav-layout): add support for different menuNav and profileNav components in AppNavLayout stories
🐛 fix(app-nav-layout): remove unnecessary flex class from NavigationMenu in AppNavLayoutMobile
🐛 fix(app-nav-layout): remove unnecessary whitespace-nowrap class from NavigationMenuList in AppNavLayoutMobile
✨ feat(app-nav-layout): add support for different menuNav and profileNav components in AppNavLayoutMobile
✨ feat(app-nav-layout): add support for different menuNav and profileNav components in examples.tsx
✨ feat(menu-nav): add support for different menu items based on user role and add translations
🐛 fix(menu-nav): hide MenuNavDesktop component on mobile screens
✨ feat(menu-nav): add support for different menu items based on user role and add translations

* 🔧 chore(app-nav): refactor AppNavLayout.stories.tsx to add support for Super Admin role in profile navigation
🔧 chore(app-nav): refactor examples.tsx to add support for Super Admin role in profile navigation
🔧 chore(role-avatar): refactor examples.tsx to add support for Super Admin role in role avatar

* 🚀 feat(ui): add BlockchainAddress component to display and copy blockchain addresses

The BlockchainAddress component is added to the UI library. It allows displaying a blockchain address and provides the functionality to copy the address to the clipboard. The component is implemented using React and includes a Badge component to display the address and a Copy icon to trigger the copy functionality. When the address is clicked, a tooltip is shown indicating that the address has been copied. The address is truncated to 16 characters to improve readability.

* 🔧 fix(DropdownMenuItems.tsx): refactor DropdownMenuItems component to handle subItems with type 'children' properly
🔧 fix(useScreenSize.ts): update import statement for useWindowSize hook from '@uidotdev/usehooks' package
🔧 fix(icons.tsx): add Copy icon component using LuCopy icon from 'react-icons/lu' package

* 🔧 chore(package.json): update dependencies
🐛 fix(ProfileNavClient.stories.tsx): remove unused imports to improve code cleanliness
✨ feat(ProfileNavClient.tsx): add support for displaying roles and switching between roles in the profile navigation
🔧 chore(ProfileNavClient.tsx): refactor constructItems function to improve readability and maintainability

* 🌐 i18n(profile-nav): add translation for "copied-address" in English and French to improve localization
🔧 fix(profile-nav): add "copiedAddress" item to ProfileNavSectionContent component to display copied address message

* 🔧 fix(components): export toast function from useToast module to improve usability
🔧 fix(components): add className prop to div elements in DropdownMenuItems component to allow custom styling

* 🔧 chore(ProfileNav.stories.tsx): refactor ProfileNav stories to improve readability and add support for mobile viewport
🔧 chore(ProfileNavClient.tsx): refactor ProfileNavClient to improve code organization and remove unnecessary console.log statement
🔧 chore(examples.tsx): import toast from @ui/components instead of libs/ui/components to fix import path

* 🔨 refactor(ProfileNav.stories.tsx): simplify profile navigation tests by removing unnecessary async/await calls
🔨 refactor(ProfileNav.tsx): add "w-fit" class to DropdownMenuItems to ensure proper width
🔨 refactor(ProfileNav.tsx): change Spinner size from "xl" to "auto" for better responsiveness
🔨 refactor(ProfileNav.tsx): adjust spacing and alignment in ProfileNavUser and ProfileNavNotConnected components
🔨 refactor(ProfileNavRole): change Spinner size from "xl" to "auto" for better responsiveness
🔨 refactor(ProfileNavClient.tsx): remove unnecessary "overflow-hidden" class from role name in constructItems function
🔨 refactor(ProfileNavClient.tsx): simplify constructItems function by removing unnecessary subItems array
🔨 refactor(variants.tsx): add "auto" size variant for icons to allow for automatic sizing

* 🐛 fix(AppNavLayout.stories.tsx): import correct types for Meta and StoryObj to fix compilation error
✨ feat(AppNavLayout.stories.tsx): add play function to simulate user interaction and test component behavior
🐛 fix(AppNavLayout.stories.tsx): fix typo in play function to correctly target elements
✨ feat(AppNavLayout.stories.tsx): add additional stories to test different scenarios and mobile view
🐛 fix(AppNavLayoutMobile.tsx): adjust styling to center profileNav in mobile view
✨ feat(examples.tsx): add examples for different profileNav scenarios and roles

* 🔧 fix(profileNav): update profile navigation texts to match the latest translations
🌟 feat(profileNav): add support for switching to user account and switching to a different role with toast notifications for success and error messages
🌐 i18n: update English and French translations for the new profile navigation texts

* 🔧 fix(profile-nav): add missing translations for switch to my account toast titles and descriptions
🌐 feat(i18n): add English translations for switch to my account toast titles and descriptions
🌐 feat(i18n): add French translations for switch to my account toast titles and descriptions
🔧 fix(menu-nav): update menu nav links to use Next.js Link component for better navigation experience
🔧 fix(app-nav-layout): remove unnecessary import and update import for testing-library
🔧 fix(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics

* 🔧 fix(MenuNav.tsx): update value of manage-roles to '/manage-roles' to fix broken link
🔧 fix(ProfileNavClient.tsx): import useRouter from '@next/navigation' to fix missing import
🔧 fix(ProfileNavClient.tsx): add router.push('/my-roles') to redirect to '/my-roles' after switching to my account

* updated features lib name from dashboard to events

* 🔧 fix(app): rename DashboardLoading component to EventsLoading for better naming consistency and clarity
🔧 fix(middleware.spec.ts): update nextUrl.pathname to '/en/event/event-slug' to fix redirection issue when not authenticated on sub route
🔧 fix(middleware.ts): update authPages array to include 'events' and 'events/*' for restricted access to event-related routes
🔧 fix(next.config.js): update import path for '@features/back-office/dashboard' to '@features/back-office/events' to reflect the correct module location
🔧 fix(tsconfig.base.json): remove unnecessary line breaks and update import paths for various modules to reflect the correct file locations

* 🐛 fix(@profileNav/default.tsx): import missing deepPick function from @utils to fix compilation error
✨ feat(@profileNav/default.tsx): add support for internationalization by wrapping ProfileNavClient component with NextIntlClientProvider and passing locale-specific messages
🐛 fix(layout.tsx): import missing deepPick function from @utils to fix compilation error
✨ feat(layout.tsx): add support for internationalization by wrapping Toaster component with NextIntlClientProvider and passing locale-specific messages
🐛 fix(MenuNav.tsx): fix conditional rendering of items when user has no role
🐛 fix(MenuNavMobile.tsx): remove console.log statement
🐛 fix(ProfileNavClient.tsx): fix rendering of RoleItem component by extracting it into a separate RoleItemDisplay component
✨ feat(ProfileNavClient.tsx): add support for internationalization by passing locale-specific messages to ProfileNavClient component
🌐 feat(fr.json): add missing translation for switch-to-role-toast-title

* New lib roles common with isSameRole function

* 🐛 fix(roles): set default value for eventId column in roleAssignments table to empty string to prevent NULL values
🐛 fix(test-utils): set default value for eventId in backOfficeAccounts to empty string to match schema

* 🔧 chore(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
🔧 chore(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🔧 chore(downloadPass.spec.ts): reorder imports to improve readability
🔧 chore(downloadPass.spec.ts): fix file path assertion to include file extension
🔧 chore(payment-admin.spec.ts): remove unused markEventPassOrderAsCompleted function
🔧 chore(payment-admin.spec.ts): remove unused markEventPassOrderAsCompleted test case
🔧 chore(payment-admin.ts): remove unused markEventPassOrderAsCompleted function
🔧 chore(roles-admin.spec.ts): add eventId property to test data objects
🔧 chore(blockchain-address/BlockchainAddress.tsx): reorder imports to improve readability
🔧 chore(blockchain-address/BlockchainAddress.tsx): fix import statement for useCopy

* 🐛 fix(middleware.spec.ts): update route pathnames to match correct route structure
🐛 fix(payment-admin.spec.ts): update test description to accurately reflect the scenario being tested
🐛 fix(useScreenSize.ts): update import statement to use 'react-use' instead of '@uidotdev/usehooks'

* 🐛 fix(MenuNav.tsx): handle null or undefined user role to prevent error when accessing role property
🐛 fix(ProfileNavClient.tsx): import RoleBadge from correct path to fix module resolution issue
🐛 fix(tsconfig.lib.json): exclude examples.tsx from compilation in app-nav and roles libraries
🐛 fix(RoleBadge.stories.tsx): add empty string eventId to roleOptions to fix missing property error

* 🔧 chore(middleware.ts): add 'my-roles' to the list of restricted pages in the back-office middleware

🐛 fix(ProfileNavClient.tsx): await the update function call to ensure session is updated before displaying toast and refresh the router after switching roles or redirecting to my-roles

🐛 fix(SumsubDialogClient.tsx): await the update function call when status is different to ensure proper handling of status updates

* fix: tests for payment-admin and payment-webhooks to reflect new refund policy

* 🔧 fix(menu-nav): remove unused import of Link from @next/navigation in MenuNav.tsx
🔧 fix(menu-nav): remove unused import of usePathname from @next/navigation and add useRouter import in MenuNavMobile.tsx
🔧 fix(profile-nav): refactor constructItems function to improve readability and remove unused import of usePathname from @next/navigation in ProfileNavClient.tsx
🔧 fix(select): refactor SelectItem component to remove unused wrapper prop and improve code readability in Select.tsx
🔧 fix(select-items): refactor SelectItems component to remove unused wrapper prop and improve code readability in SelectItems.tsx

* 🐛 fix(AppNavLayout.stories.tsx): import sleep function from @utils to fix compilation error
🐛 fix(AppNavLayout.stories.tsx): add sleep before interacting with elements to fix flaky tests
🐛 fix(ProfileNav.stories.tsx): import sleep function from @utils to fix compilation error
🐛 fix(ProfileNav.stories.tsx): add sleep before interacting with elements to fix flaky tests

---------

Co-authored-by: Alexandre Gouasmi <[email protected]>

* 161 UI new table and data table component (#162)

* 🐛 fix(index.mjs): replace escaped newline characters in UPLOAD_SECRET_JWT environment variable to actual newline characters for proper formatting

* 🔧 chore(next.config.js): add '@features/navigation' to the list of features in next.config.js files
🚀 feat(package.json): update 'next' package to 'canary' version for better compatibility with other dependencies
🚀 feat(package.json): update 'next-intl' package to version 3.0.1 for bug fixes and improvements
🔥 chore(package.json): remove unused dependency '@opentelemetry/api' from package.json

* 🔧 chore(global-error.tsx): remove unused import and console.log statements to improve code cleanliness and readability
🔧 chore(global-error.tsx): remove unused import to improve code cleanliness and readability
🔧 chore(ErrorClient.tsx): comment out Alert component to fix breaking issue in next apps
🔧 chore(ErrorClient.tsx): refactor Alert component to a div to fix breaking issue in next apps

* 🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(default.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(default.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(layout.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(layout.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(page.tsx): update import statements to fix compilation errors caused by incorrect import paths
✨ feat(page.tsx): update import statements to use the correct paths for translations and suspenses
🐛 fix(EventPassesCart.tsx): update import statements to fix compilation errors caused by incorrect import …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

UI, new table and data-table component
1 participant