Skip to content

Conversation

@sage-turing
Copy link

Fixes Issue

My PR closes #issue_number_here

👨‍💻 Changes proposed(What did you do ?)

✔️ Check List (Check all the applicable boxes)

  • [] My code follows the code style of this project.
  • [] This PR does not contain plagiarized content.
  • [] The title and description of the PR is clear and explains the approach.

Note to reviewers

📷 Screenshots

swapdewalkar and others added 30 commits November 12, 2025 21:51
feat: Reapply "test(contact): add comprehensive tests for contact message C…
feat(newsletter): initialize newsletter app with models, admin, and v…
* added create order integration

* fixed misaligned types

---------

Co-authored-by: arkmadj <[email protected]>
- Add brandName field to ProductFilters and ProductSearchParams types
- Update productService.getProducts() to accept and send brand parameter
- Add getBrands() method to fetch all brands from backend
- Add Brand interface and BrandAPIResponse type
- Add transformBrandFromAPI() function for data transformation
- Update ShopPage to read brand query parameter from URL
- Add brand filter to API call and reset filters logic
- Add BRANDS endpoint to API configuration
- Make backend brand filter case-insensitive with iexact lookup

This enables filtering products by brand name via URL parameter (e.g., ?brand=p1810)

Co-authored-by: Shehryar Raza <[email protected]>
- Create themeStore.ts with Zustand
- Add theme mode state (light/dark)
- Add localStorage persistence
- Export from store index
- Add toggle and set mode actions

Co-authored-by: Shehryar Raza <[email protected]>
- Create createAppTheme() function that accepts ThemeMode
- Add mode parameter to MUI palette configuration
- Keep existing theme export for backward compatibility
- Import ThemeMode type from themeStore
- Add JSDoc documentation

Co-authored-by: Shehryar Raza <[email protected]>
…e_update

test: SCRUM-35 - update the CreateOrderViewTests to validate the shipping, …
- Import createAppTheme and useThemeStore
- Subscribe to theme mode from store
- Create theme dynamically using useMemo
- Theme now reacts to mode changes

Co-authored-by: Shehryar Raza <[email protected]>
* feat(theme): add theme toggle component to header

- Create ThemeToggle component with light/dark icons
- Add tooltip for better UX
- Integrate into Header component
- Export from components index
- Always visible on desktop header

* feat(a11y): improve theme toggle accessibility with ARIA switch semantics

- Add role='switch' to theme toggle button for proper control type
- Add aria-checked attribute to convey toggle state to screen readers
- Simplify aria-label since state is now conveyed via aria-checked
- Improves screen reader experience by announcing control as switch with current state

* fix(theme): align aria-label with tooltip for ThemeToggle accessibility

---------

Co-authored-by: Shehryar Raza <[email protected]>
feat: added newsletter changes
swapdewalkar and others added 27 commits November 27, 2025 23:39
- Add TypeScript interfaces for Notification, NotificationAPI, and paginated responses
- Implement notificationService with getNotifications method
- Add NOTIFICATIONS.LIST endpoint to API config
- Export notificationService from API index

Co-authored-by: Shehryar Raza <[email protected]>
* feat(notifications): add Zustand store for state management

- Create notificationStore with state for notifications, pagination, and loading
- Implement fetchNotifications action to fetch paginated notifications
- Add clearNotifications and setPage actions
- Export notificationStore from store index

* fix(notifications): prevent race conditions in notification fetch with request counter

* fix(notifications): reset isLoading in clearNotifications

Ensures clearing notifications always leaves the store in a consistent,
non-loading state. Prevents UI from staying in loading state if clear
is called while a fetch is in progress.

* fix(notifications): invalidate in-flight requests on clearNotifications

Increment fetchRequestCounter when clearing notifications to ensure
any in-flight fetch responses are ignored. This prevents cleared
notifications from being repopulated by stale responses, keeping
the store in a consistent empty state after clear.

---------

Co-authored-by: Shehryar Raza <[email protected]>
…ration (#214)

* feat(notifications): add notification bell component and header integration

- Create NotificationBell component with badge showing unread count
- Implement NotificationList dropdown menu showing recent 5 notifications
- Add 30-second polling for new notifications
- Integrate NotificationBell into Header component
- Add notifications link to Sidebar for mobile navigation
- Add POLLING_INTERVAL constant for notifications

* refactor: replace hard-coded values with constants

- Add POLLING_INTERVAL constant (30s) to avoid magic numbers
- Replace hard-coded route paths with ROUTES constants in NotificationList and Sidebar
- Prevents route drift and improves maintainability

---------

Co-authored-by: Shehryar Raza <[email protected]>
- Create NotificationsPage component with full list view
- Display all notifications with read/unread status indicators
- Implement pagination using MUI Pagination component
- Add protected route for /notifications path
- Show unread count chip in page header
- Format notification timestamps with date-fns

Co-authored-by: Shehryar Raza <[email protected]>
* feat(notifications): add internationalization support

- Add notification translations for English (en)
- Add notification translations for Spanish (es)
- Add notification translations for French (fr)
- Add notification translations for German (de)
- Include translations for: title, empty state, view all, unread count
- Add tooltip translation for notifications icon

* feat(i18n): add pluralization forms for notifications.unreadCount

- Add singular/plural forms for notifications.unreadCount across all locales
- Match existing pluralization pattern used in cart.itemsInCart
- Ensure correct grammar for notification counts in en, es, fr, and de

---------

Co-authored-by: Shehryar Raza <[email protected]>
…ation

fix: SCRUM-117 - make orderitem depend on product directly
@vercel
Copy link

vercel bot commented Dec 1, 2025

@sageliteoff is attempting to deploy a commit to the dunsin's projects Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Compliance Checks

Thank you for your Pull Request! We have run several checks on this pull request in order to make sure it's suitable for merging into this project. The results are listed in the following section.

Issue Reference In order to be considered for merging, the pull request description must refer to a specific issue number. This is described in our Contributing Guide. This check is looking for a phrase similar to: "Fixes #XYZ" or "Resolves #XYZ" where XYZ is the issue number that this PR is meant to address.

Conventional Commit PR Title

In order to be considered for merging, the pull request title must match the specification in conventional commits. You can edit the title in order for this check to pass.
Most often, our PR titles are something like one of these:

  • docs: correct typo in README
  • feat: implement dark mode"
  • fix: correct remove button behavior

Linting Errors

  • Found type "null", must be one of "feat","fix","docs","style","refactor","perf","test","build","ci","chore","revert"
  • No subject found

@sage-turing sage-turing closed this Dec 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants