- Introduced a new constant for the tender section scroll offset to enhance scrolling behavior when navigating to sections.
- Updated the scroll-to-section logic to account for the sticky header and added a small gap for better visual alignment.
- Refactored the useTenderSectionScrollSpy hook to utilize the new scroll offset, ensuring consistent behavior across sections.
- Improved code organization by separating scroll offset calculations into a dedicated function.
- Enhanced the Select component to support a searchable dropdown, allowing users to filter options by label or value.
- Introduced a new useSelectServerSearch hook for server-side searching, enabling dynamic fetching of options based on user input.
- Updated TenderDetailsHeader and TenderListFilters to utilize the searchable feature, improving user experience in selecting languages and countries.
- Added utility functions for filtering select items and managing search states, ensuring efficient data handling and responsiveness.
- Added `@lottiefiles/dotlottie-react` and `lottie-react` dependencies for enhanced animation capabilities.
- Refactored the NotFoundPage component to utilize a dedicated NotFoundContent component, improving code organization and readability.
- Updated package.json and pnpm-lock.yaml to reflect new dependencies and their versions.
- Introduced a new "Lots" section in the tender details page to display lot-specific information, improving data organization and visibility.
- Updated the tender navigation to conditionally include the "Lots" section based on its availability.
- Enhanced the tender display utilities with functions to determine the visibility of various sections, including lots, description, and translation.
- Refactored components to utilize the new utilities for better conditional rendering and improved user experience.
- Improved type definitions for tender details to ensure better type safety and clarity.
- Added a new documents section to the tender details page, improving organization and visibility of related documents.
- Updated the tender navigation items to conditionally include the documents section based on the loading state and document availability.
- Refactored the TenderDetailsContent component to manage document loading states and conditionally render the documents section.
- Enhanced the getTenderNavItems utility to accept options for showing the documents section, improving flexibility in navigation rendering.
- Added functionality to trim and filter related TED notice publication IDs for better display.
- Introduced new fields for notice type code and main classification in the tender details.
- Updated the procurement section to conditionally render additional information, improving user experience and data visibility.
- Introduced a new documents section in the tender details page for better organization of related documents.
- Updated the API service to support downloading individual and bulk documents.
- Enhanced the TenderDetailsContent component to manage document data and loading states effectively.
- Refactored tender navigation items to include the new documents section.
- Improved type definitions for better clarity and type safety in document handling.
- Updated Cypress tests for the tender translation page to improve visibility checks and streamline assertions.
- Refactored test structure to utilize a dedicated function for fetching the visible title heading.
- Adjusted test cases to ensure accurate language switching and URL handling for tender details.
- Improved layout consistency in the translation page by refining element visibility checks and ensuring proper section rendering.
- Introduced a scroll spy feature for tender sections to improve navigation experience.
- Added TenderSectionNavList component for better section navigation and user interaction.
- Updated MainLayout to adjust main content overflow behavior for improved layout consistency.
- Refactored TendersTable to remove unnecessary create button and streamline feedback navigation.
- Integrated language selection and translation functionality in TenderDetails, allowing users to choose display language and translate tender metadata.
- Added AI summary section to display overall summary of the tender.
- Updated API service to support translation requests and handle responses effectively.
- Improved pagination handling in AdminsTable for better user experience.
- Refactored various components to ensure consistent data flow and state management.
- Bumped NEXT_PUBLIC_APP_VERSION to 2.0.3 for the latest release.
- Improved Cypress test for customer feedback page to handle delayed route transitions.
- Refactored CompanyDetailsPage to enhance layout and added new components for better structure.
- Updated TenderDetails to conditionally render location and currency information based on validity checks.
- Added data-cy attributes to various form elements and tables for improved testing capabilities.
- Replaced msToDate with unixToDate for application, publication, submission, and tender deadlines to ensure accurate date representation.
- Improved ShowcaseSection layout by adjusting class names for better visual consistency across various sections.
- Enhanced error message formatting for improved readability.
- Replaced TIMELINE_SHOWCASE with SHOWCASE_CENTERED_BODY for better vertical alignment of content in ShowcaseSection components.
- Ensured consistent styling across various sections including Tender ID, Buyer organization, and timeline details.
- Removed placeholder text from various input fields in ContactsStep, FooterStep, HeroStep, and SectionStep components to streamline the user interface.
- Updated MarketingForm to enhance form field handling and validation logic.
- Improved default values in useMarketingForm for better initial state management.
- Added SectionHeading and ExternalLinkIcon components for better structure and visual appeal.
- Improved error handling UI when tender data fails to load, providing user-friendly messages and navigation options.
- Refactored ShowcaseSection to accept additional className and rootClassName props for more flexible styling.
- Updated TendersTable to streamline action buttons and improve layout consistency.
- Updated the grid layout in the Home page for better responsiveness.
- Adjusted tabIndex handling in MultiSelect component to enhance accessibility.
- Added minimum width to the TopChannels table for consistent display.
- Refined notification recipient placeholder logic for cleaner code.
- Updated SignIn and Profile components with new background styles and layout adjustments for a more modern look.
- Refined button styles in GoogleSigninButton and SigninWithPassword for better user interaction feedback.
- Enhanced InputGroup and Select components with improved styling and error handling for a more consistent user experience.
- Adjusted Sidebar and Header components for better responsiveness and visual appeal.
- Implemented spotlight effect in UserInfo dropdown for a more engaging user interface.
- Removed useImperativeHandle and getValues from BenefitsStep, ChallengesStep, ChartStep, ContactsStep, FeaturesStep, FooterStep, and HeroStep components.
- Updated step presenters to directly use refs for improved data handling and validation.
- Enhanced code readability and maintainability by streamlining the presenter functions.
- Updated the ChatsCard component to improve layout and styling, ensuring better responsiveness.
- Adjusted class names for flex properties and truncation to enhance visual presentation of chat details.
- Ensured proper handling of unread message indicators and improved the rendering of last message timestamps.
- Modified the layout of the SignIn component to improve responsiveness and visual appeal.
- Adjusted the container classes for better alignment and spacing across different screen sizes.
- Enhanced the validation of country codes in the TenderDetails component using a new utility function.
- Updated the useGetFlagQuery hook to include an options parameter for conditional fetching based on country code validity.
- Refined the rendering logic to ensure country flags are displayed only when valid data is available.
- Updated the TenderDetails component to validate country codes using a new utility function, isValidAlpha2CountryCode.
- Modified the useGetFlagQuery hook to accept an options parameter for conditional fetching based on the validity of the country code.
- Improved the rendering logic for the country flag to ensure it only displays when valid flag data is available.
- Changed import paths for the Loading component from "@/app/loading" to "@/components/loading" across multiple files to maintain consistency and improve modularity.
- Removed the Loading component definition from loading.tsx, simplifying the file structure.
- Add EmptyListWrapper to various tables (Admins, Companies, Customers, Feedback, Notification History, Tenders) to provide a consistent empty state message when no data is available.
- Update phone number and status display logic in the Profile page to handle null values gracefully.
- Introduce worktree setup configuration in worktrees.json for easier project setup.
- Switch language field from text `InputGroup` to `Select` with `Languages` options,
`GlobeIcon`, clearable support, and conditional disable/require for companies
- Remove manual length validation as Select ensures valid predefined values
- Update `Countries` values from ISO-2 to ISO-3 codes for consistency
- Add "Inquiries" nav item to sidebar data with `/inquiries` URL and BriefcaseTimer icon
- Implement BriefcaseTimer SVG icon component
- Add `INQUIRIES` base endpoint to API_ENDPOINTS
- Cleanup: remove commented details button in CmsTable, reorder imports
- Add support for initial data in all marketing wizard step components
- Update step presenters to accept and handle initial data
- Modify forwardRef implementations to include initialData prop
- Add TypeScript interfaces for step component props
- Improve type safety and data handling across marketing wizard steps
- Prepare components for edit and create workflows with consistent data management
- Implement CMS table with row listing and pagination
- Add delete functionality for CMS entries with confirmation modal
- Introduce edit button to navigate to edit page for specific CMS entry
- Update page type form to include new 'key' field for CMS entries
- Modify CMS service and types to support new data structure
- Enhance table presenter with additional actions and state management
Resolves data management and user interaction improvements for CMS module
- Move all marketing wizard components from `create/_components` to `_components` directory
- Update import paths in `create/page.tsx` to reflect new component locations
- Add countries constant to support country selection in page type configuration
- Minor formatting and cleanup of `.vscode/settings.json`
- Prepare for more modular and consistent component structure in marketing wizard
- Implement new edit marketing page with dynamic routing
- Update CMS and contact us table components with placeholder content
- Add new query hook for fetching CMS details by ID
- Modify CMS service to support fetching individual CMS details
- Update type definitions for CMS-related data structures
- Add initial breadcrumb navigation for edit marketing page
- Prepare infrastructure for future CMS editing functionality
- Add page type selection (company or organization) with dynamic form fields
- Implement conditional validation for company-specific fields (language, company name, country)
- Update HeroStep with URL pattern validation for GIF file input
- Modify page submission to include page type and related configuration data
- Enhance form handling with react-hook-form for page type configuration
- Add input groups and select components for page type configuration section
- Rename field names across step components for consistency
- Update chart step to use more generic data structure
- Modify input field names to follow consistent naming convention
- Refactor chart step to use key-value pairs instead of x-y coordinates
- Update form field names in multiple marketing wizard steps
- Improve type consistency and naming across marketing wizard components
- Add forwardRef to all marketing wizard step components
- Implement useImperativeHandle for consistent data collection across steps
- Remove redundant collectData static methods
- Add displayName to each component for better debugging
- Simplify data retrieval pattern using ref-based getData method
- Remove duplicate code and improve component consistency
- Ensure each step component follows the same structural pattern
- Moved all marketing wizard step components to `create/_components` directory
- Added `collectData` static method to each step component for data retrieval
- Reorganized file structure to improve component modularity
- Prepared steps for dynamic data collection in wizard workflow
- Added VSCode settings file for project configuration
- Introduced new CMS-related components and services
- Updated API endpoints and added new query hooks
This commit introduces a new "Contacts" section to the marketing page, which is now the fifth step in the page's flow.
Additionally, the Checkbox component has been enhanced with a smooth transition effect on state change. This provides better visual feedback and a more polished user experience.
Reduces code duplication in the marketing page forms by creating a generic `SectionStep` component. This new component encapsulates the shared UI and logic for sections that include a title, description, and a dynamic list of fields (e.g., feature cards, pricing points).
The `FeaturesStep` component has been refactored to use this new `SectionStep`, resulting in a much cleaner and more maintainable implementation.
This commit replaces the placeholder "Preferences" step in the marketing page's multi-step process with a new, functional "Features" step.
The `FeaturesStep` component is now imported and rendered as the third step, allowing users to add features. The step's title and description have been updated to reflect this change.
This commit introduces the second step in the marketing page's stepper, which allows users to create a chart. The previous placeholder content has been replaced with the new `ChartStep` component.
To support form functionality within this new step, the `Button` component has been updated to accept a `type` attribute (`button`, `submit`, `reset`), enabling proper form submission handling.
This commit introduces a new "Calls" section to the main sidebar navigation to provide users with access to call logs.
- Adds a new collapsible "Calls" menu item to the sidebar configuration.
- Includes sub-links for "All Calls", "Incoming", "Outgoing", and "Missed" calls.
- Creates new custom icons (GlobeSearch, CallIncome, CallMade, CallMissed, CallReceived) to support the new menu items.
- Updates `apexcharts` and `react-apexcharts` dependencies to newer versions.
This commit introduces a new user settings page and enhances push notification functionality.
The new settings page, located at `/pages/settings`, allows users to view and update their personal profile information. It fetches the current user's data and provides a form to edit fields such as name, email, phone number, position, and role. The form is built using `react-hook-form` for state management and validation, and it leverages custom hooks (`useProfileQuery`, `useUpdateProfileQuery`) to interact with the API.
Additionally, a `notificationclick` event listener has been added to the Firebase messaging service worker. This handler improves the user experience for push notifications by focusing on an existing tab with the relevant URL or opening a new one if none exists when a notification is clicked.