Commit Graph

20 Commits

Author SHA1 Message Date
AmirReza Jamali 5ef0298840 feat(reset-password): implement reset password functionality for admins and customers
- Added new ResetPasswordModalContent component for displaying generated passwords.
- Integrated reset password functionality in the AdminsTable and CustomersTable components, allowing users to reset passwords for admins and customers.
- Created useResetPasswordModalPresenter hook to manage password visibility and clipboard copying.
- Updated API services and hooks to support reset password requests for both admins and customers.
- Enhanced tooltip functionality for reset password actions in the tables.
2026-05-30 12:09:57 +03:30
AmirReza Jamali 36334119bd chore(env): update application version to 2.2.4 in production environment
feat(multi-select): enhance MultiSelect component with dropdown positioning and portal rendering

- Added dynamic dropdown positioning to ensure it appears correctly relative to the trigger element.
- Implemented portal rendering for the dropdown to improve performance and prevent overflow issues.
- Refactored MultiSelect state management for better clarity and maintainability.

feat(switch): improve Switch component with GSAP animations and enhanced styling

- Integrated GSAP animations for thumb transitions and glow effects to enhance user interaction.
- Updated styling for the Switch component to improve visual feedback and responsiveness.

feat(companies-table): add currency and language metadata display in CompaniesTable

- Introduced currency and language metadata for better representation of company details.
- Enhanced UI for displaying company languages and currencies with tooltips for additional context.

feat(assign-to-company-modal): refactor AssignToCompanyModalContent to use MultiSelect

- Replaced Select component with MultiSelect for improved user experience in selecting companies.
- Streamlined state management and data handling for company assignments.

feat(customers-table): enhance customer company display with tooltips and improved layout

- Updated customer company display to show a maximum of two companies with a tooltip for additional companies.
- Improved styling for better visual representation of customer associations with companies.

feat(confirmation-modal): enhance ConfirmationModal with animations and improved accessibility

- Added GSAP animations for modal entrance and exit to improve user experience.
- Implemented accessibility features for better keyboard navigation and focus management.

feat(status): extend Status component with pulse and shimmer effects for enhanced visual feedback

- Introduced new visual effects for status indicators to improve user engagement and clarity.
- Updated styles for better integration with existing UI components.

feat(tooltip): enhance tooltip styling and functionality with new palettes

- Implemented a new tooltip design with gradient backgrounds and shadows for improved visibility.
- Updated tooltip parameters to support new styling options and enhance user experience.
2026-05-24 13:07:07 +03:30
AmirReza Jamali d9a945904a feat(phone-input): integrate phone number input component and validation
- Added `libphonenumber-js` dependency for improved phone number handling.
- Refactored `CreateAdmin` form to utilize a new `PhoneNumberInput` component with validation rules.
- Updated `useCreateAdminPresenter` to normalize phone number input before submission.
- Enhanced error messages for phone validation in `Texts` constant.
- Modified `User` schema to validate phone numbers using E.164 format.
2026-05-16 10:28:03 +03:30
AmirReza Jamali f397158a29 refactor(tender-details): enhance translation page tests and layout
- 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.
2026-05-11 16:11:09 +03:30
AmirReza Jamali f01632e38d refactor(tender-details): enhance translation and summary features
- 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.
2026-05-10 08:44:03 +03:30
AmirReza Jamali fa6ffc59aa feat(marketing): replace language input with Select; update Countries to ISO-3
- 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
2025-11-29 15:19:20 +03:30
AmirReza Jamali a77bb6cccc feat(inquiries): Add filtering functionality to inquiries list table
- Create new InquiriesListFilters component with search and status filter fields
- Integrate filter modal into inquiries table with form handling
- Add INQUIRY_STATUS enum with pending, reviewed, approved, and rejected statuses
- Implement URL-based query parameter management for filter persistence
- Add form state management using react-hook-form with watch and setValue utilities
- Connect filter search to useGetInquiries hook to fetch filtered results
- Support clearing individual filter fields and closing filter modal
2025-11-25 12:40:30 +03:30
AmirReza Jamali 62981e83e9 feat(companies): Add filtering functionality to company list table
- Create CompanyListFilters component with form fields for name, email, phone, currency, and employee count
- Integrate filter modal into CompaniesTable component with open/close state management
- Update useCompanyListPresenter hook to handle filter form state and search parameters
- Replace inline create button with ListHeader component for consistent UI patterns
- Add support for URL-based query parameters to persist filter state
- Implement form reset and filter clearing functionality
- Add isMutating state tracking for loading indicators during filter searches
- Update constants/enums to support currency filtering optionsfor
2025-11-22 15:48:34 +03:30
AmirReza Jamali 7005ab67b7 feat(customers): Add filtering functionality to customer list table
- Create new CustomerListFilters component with status, role, and type filter options
- Integrate filter modal into customer list table with open/close functionality
- Add filter form handling with react-hook-form for managing filter state
- Implement search functionality triggered by filter form submission
- Add EmptyListWrapper component to display message when no customers found
- Replace inline create button with reusable ListHeader component
- Add clearable select fields for better filter UX
- Update customer table to safely handle optional customer properties
- Add new CustomerStatus and CustomerType enums to support filtering options
- Improve table organization with proper imports and component structure
2025-11-22 15:22:44 +03:30
AmirReza Jamali 2b9eaa0495 refactor(marketing): Restructure marketing wizard components and improve project organization
- 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
2025-11-10 12:41:41 +03:30
AmirReza Jamali 387747b9b0 feat(settings): implement user profile page and notification handler
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.
2025-10-11 16:41:26 +03:30
AmirReza Jamali 711dee4bce fixed build issue 2025-09-28 10:29:16 +03:30
AmirReza Jamali bb56e1013a feat(companies): Enhance company forms with additional fields
This commit expands the company profile by adding several new fields to the create and edit forms. This allows for the collection of more detailed and comprehensive company information.

Key changes include:
- Added new fields: Establishment Date, Company Type, Business Nature, Industry, Country, State, and City.
- Introduced a new reusable `DatePicker` component, utilizing `react-datepicker`, for date input.
- Created a new `CalendarIcon` for use in the date picker.
- Updated the company Zod schema, API services, and data types to support the new fields.

Additionally, this commit includes a refactor to standardize the `MultiSelect` component by renaming the `text` prop to `label` for better consistency across form elements. Form labels are now capitalized for a uniform UI.
2025-09-27 16:33:13 +03:30
AmirReza Jamali da250b805d feat(ui): add tooltips to action icons in admins table
This commit introduces the `react-tooltip` library to improve user interface clarity and provide a better user experience.

Tooltips have been added to the action icons (Edit, Delete, Change Status) in the Admins table. This provides users with clear, on-hover information about the function of each icon, enhancing usability and reducing ambiguity.

The implementation involved:
- Adding `react-tooltip` as a project dependency.
- Importing the required CSS in the root layout.
- Integrating the `Tooltip` component within the Admins table.
2025-09-26 20:48:59 +03:30
AmirReza Jamali 3801073fd7 feat: Add loading states and improve form handling
This commit introduces several enhancements to form components and user experience across the application.

- **Sign-in Form:**
  - Implemented a loading state using `useIsMutating` from TanStack Query.
  - The username and password fields are now disabled during the login process to prevent concurrent submissions.
  - The "Sign in" button displays a spinner while the mutation is pending, providing clear visual feedback.

- **Assign to Company Modal:**
  - Refactored the modal to use `react-hook-form` for more robust state management and validation.
  - The form submission button is now disabled while the assignment request is in progress.

- **Tag Input Component:**
  - Added a new `shouldAddWithSpace` prop to allow creating tags by pressing the space bar, increasing the component's flexibility.

- **Header:**
  - Corrected the image path for the mobile header logo to display the correct icon.
2025-09-24 10:45:45 +03:30
AmirReza Jamali 1d78b2b65d feat(admins): implement admin status management
This commit introduces the functionality for super admins to change the status of other admin users to either 'Active' or 'Inactive'. This provides better control over admin account access.

Key changes include:
- A 'Status' column with a visual badge has been added to the admins table.
- A new 'Change Status' action button, using a new `UserSettingIcon`, opens a modal for status updates.
- The backend service and frontend mutation for updating an admin's status are implemented.
- The `IUser` type and a new `AdminStatus` enum have been added to support this feature.

Additionally, the confirmation modal implementation has been simplified across the admin and customer tables by removing the `modalConfig` state.
2025-09-21 13:18:53 +03:30
AmirReza Jamali e6493f5d83 feat(form): add loading state and replace custom switch component
This commit introduces a loading state for form submissions and replaces the custom switch component with a third-party library for improved user experience and maintainability.

- Adds `react-switch` as a dependency to replace the custom-built switch component, providing a more robust and feature-rich solution.
- Implements a loading indicator on form submission buttons and in the confirmation modal by utilizing the `useIsMutating` hook from TanStack Query. This provides clear visual feedback to the user during asynchronous operations.
- Creates a reusable `FormFooter` component to encapsulate the submit and cancel buttons, centralizing the form submission logic and loading state.
- Refactors the company create/edit forms to use the new `FormFooter` and `react-switch` components.
- Moves the `BreadcrumbItem` type to a shared types file for better code organization.
2025-09-20 16:13:04 +03:30
AmirReza Jamali 4fb1a931c5 refactor(logo): Update main logo SVG to use currentColor
The main logo SVG has been replaced with an updated version.

The previous logo had hardcoded fill colors, making it difficult to adapt to different color schemes, such as light and dark modes.

The new SVG uses `fill="currentColor"`, which allows its color to be controlled via the parent element's CSS `color` property. This makes the logo easily themeable and more flexible for use throughout the application.
2025-09-16 18:31:33 +03:30
AmirReza Jamali 2fa774b6bd feat(companies): implement companies page with data table
This commit introduces a new "Companies" page to the dashboard, providing a comprehensive view of company data in a sortable and paginated table.

Key changes include:
- A new page at `/companies` to display the data table.
- A new API route `/api/companies` that serves mock company data.
- A `CompaniesTable` component built with `react-table` featuring sorting, pagination, and search functionality.
- Reusable `TablePagination` and `TableActions` components to support the table.
- The `moment` library has been added as a dependency to format dates within the table.
- A new `CrossIcon` has been added for UI controls.
- The `InputGroup` component is enhanced with an `autoComplete` prop.
- A link to the new "Companies" page has been added to the sidebar navigation.
2025-09-16 16:01:59 +03:30
AmirReza Jamali 1d4ccb3575 Initial commit for new panel 2025-09-09 11:20:26 +03:30