Skip to content

Fix/reported bugs fixing#425

Merged
lukasz-hycom merged 22 commits intomainfrom
fix/reported-bugs-fixing
Dec 5, 2025
Merged

Fix/reported bugs fixing#425
lukasz-hycom merged 22 commits intomainfrom
fix/reported-bugs-fixing

Conversation

@lukasz-hycom
Copy link
Copy Markdown
Contributor

@lukasz-hycom lukasz-hycom commented Dec 2, 2025

What does this PR do?

Fixes #162

  • fixing various bugs

Key Changes

  • [Notifications] added links in notification titles, reversed order of buttons for filtering and removing filters (mobile)
  • [Tickets] added links in ticket subject, unified status names
  • [Ticket details] fixing attachment color to match the design
  • [Help&Support] added login button in navbar
  • [Orders] added missing status in filters
  • [Order Details, Orders] added missing icons

Summary by CodeRabbit

  • New Features

    • Sign-in button added to the header for unsigned users; configurable and hidden on the login page.
  • Improvements

    • Two new order statuses: "Requires Action" and "Archived".
    • Ticket and notification titles now render as interactive links.
    • Selected filter items display a checkmark indicator.
    • New lighter card background and brighter dark-mode foreground.
    • Filter action buttons order reversed on small screens.
    • Attachment items get improved background styling.

✏️ Tip: You can customize this high-level summary in your review settings.

@lukasz-hycom lukasz-hycom self-assigned this Dec 2, 2025
@vercel
Copy link
Copy Markdown

vercel Bot commented Dec 2, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
o2s-docs Skipped Skipped Dec 4, 2025 3:06pm

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Dec 2, 2025

Walkthrough

Adds an authentication-aware Sign In button to header navigation (desktop & mobile) using LOGIN_PATH; extends CMS Header model and mappers with signInLabel; enhances ToggleGroup to support active icons and current value context; adjusts UI blocks, theme colors, and localized mock data.

Changes

Cohort / File(s) Change Summary
Header Navigation Sign-In Feature
apps/frontend/src/containers/Header/Header.tsx, apps/frontend/src/containers/Header/Header.types.ts, apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.tsx, apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.types.ts, apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.tsx, apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.types.ts, apps/frontend/src/app/[locale]/(auth)/login/page.tsx
Added optional props signInLabel and shouldIncludeSignInButton; components compute sign-in visibility using session state and render a Sign In Button linking to LOGIN_PATH; login page disables the button.
Routing Configuration
apps/frontend/src/i18n/routing.ts
Added exported LOGIN_PATH = '/login' and updated routing map to use the computed key.
CMS Model & Mappers
packages/framework/src/modules/cms/models/header.model.ts, packages/integrations/contentful-cms/src/modules/cms/mappers/cms.header.mapper.ts, packages/integrations/strapi-cms/src/modules/cms/mappers/cms.header.mapper.ts, packages/integrations/mocked/src/modules/cms/mappers/cms.header.mapper.ts
Added signInLabel to Header model and mapper outputs (mocks include string, remote mappers set undefined with TODO).
Order-list & Ticket Mocks
packages/integrations/contentful-cms/src/modules/cms/mappers/blocks/cms.order-list.mapper.ts, packages/integrations/mocked/src/modules/cms/mappers/blocks/cms.order-list.mapper.ts, packages/integrations/contentful-cms/src/modules/cms/mappers/blocks/cms.ticket-details.mapper.ts, packages/integrations/mocked/src/modules/cms/mappers/blocks/cms.ticket-details.mapper.ts, packages/integrations/contentful-cms/src/modules/cms/mappers/mocks/pages/service-details.page.ts, packages/integrations/mocked/src/modules/cms/mappers/mocks/pages/service-details.page.ts
Added status options REQUIRES_ACTION and ARCHIVED (EN/DE/PL) to order-list mocks; adjusted Polish ticket-details OPEN label; updated service-details page id from '3' to '15'.
UI Blocks: Link Rendering
packages/blocks/notification-list/src/frontend/NotificationList.client.tsx, packages/blocks/ticket-list/src/frontend/TicketList.client.tsx
Switched title/topic columns from text to custom and added render functions to display titles/topics as Button-wrapped links; removed per-row conditional font-weight logic.
UI Blocks: Visual Updates
packages/blocks/orders-summary/src/frontend/OrdersSummary.client.tsx, packages/blocks/ticket-details/src/frontend/TicketDetails.client.tsx
Added Check active icon to orders-summary toggle items; applied bg-card-light class to ticket-details attachment container.
UI Components: Toggle Group
packages/ui/src/elements/toggle-group.tsx
Extended ToggleGroupContext with currentValue; refactored ToggleGroupItem to forwardRef, added activeIcon? and iconPosition?, and render logic to show active icon based on context value(s).
Layout & Theme
packages/ui/src/components/Filters/Filters.tsx, packages/ui/src/globals.css, packages/ui/src/theme.css
Reversed filter action order (flex-colflex-col-reverse); added --card-light CSS variable and bg-card-light usage; updated dark theme --foreground to #fafafa.
Changeset
.changeset/gentle-eggs-report.md
Bumped multiple packages; changelog note mentioning bug fixes and sign-in button addition.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Areas to focus on:
    • Header sign-in propagation and shouldIncludeSignInButton behavior across Desktop/Mobile and login page.
    • ToggleGroup: currentValue propagation, single vs multi-select active detection, and activeIcon rendering.
    • CMS mappers and mocks: presence/consistency of signInLabel, newly added status options and Polish label change.
    • Theme/CSS: --card-light usage and dark-theme --foreground value impact.
    • Notification/ticket list column rendering changes (custom render correctness and accessibility).

Suggested reviewers

  • marcinkrasowski

Poem

🐰 I hopped into headers, left a button bright,
Toggles now tick with icons in sight,
Cards grew lighter, mocks aligned true,
Paths named clearly — login in view,
I nibble code and bid you review! ✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning Multiple changes appear unrelated to issue #162: navigation sign-in button, ticket/notification links, attachment styling, order status options, and icon additions exceed the filter button reversal scope. Consider splitting this PR into focused changes addressing one concern per PR, or document why all these changes warrant inclusion together in the linked issue.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The PR title is vague and generic, using 'Fix/reported bugs fixing' without conveying what bugs were fixed or the primary changes. Use a more descriptive title that highlights the main change (e.g., 'Fix multiple UI bugs: add navigation sign-in button, ticket links, and filter order').
✅ Passed checks (2 passed)
Check name Status Explanation
Description check ✅ Passed The PR description covers objectives and key changes but lacks detailed testing instructions and media despite the template requiring them.
Linked Issues check ✅ Passed The PR addresses issue #162 (reverse filter buttons) via flex-col-reverse in Filters.tsx, but introduces additional unrelated features (sign-in button, ticket links, status mappings) beyond the linked issue scope.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/reported-bugs-fixing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/blocks/orders-summary/src/frontend/OrdersSummary.client.tsx (1)

72-80: Guard against empty ToggleGroup value in handleFilter

Radix UI's ToggleGroup with type="single" emits an empty string when the user deselects the currently selected item. Without a guard, value.split('-') yields [''], parts[1]! becomes undefined, and the assertion at line 99 throws a runtime error when trying to match against component.ranges. Add an early return for falsy values:

     const handleFilter = (value: string) => {
+        if (!value) {
+            return;
+        }
         startTransition(async () => {
             let dateFrom: string;

This prevents the crash while keeping behavior unchanged for valid selections.

Also applies to: 93-100

♻️ Duplicate comments (1)
packages/integrations/strapi-cms/src/modules/cms/mappers/cms.header.mapper.ts (1)

44-44: Placeholder for Strapi CMS field addition.

Similar to the Contentful mapper, signInLabel is set to undefined pending CMS integration. The UI verification comment from the Contentful mapper review applies here as well.

🧹 Nitpick comments (6)
packages/integrations/mocked/src/modules/cms/mappers/blocks/cms.order-list.mapper.ts (1)

78-79: Status filter options correctly aligned with field mappings across locales

The added REQUIRES_ACTION and ARCHIVED options use the same keys and labels as in fieldMapping.status for EN/DE/PL, so these statuses are now filterable without introducing inconsistencies. This is a clean, localized fix.

If you see more status additions in the future, consider deriving these filter options from a shared status definition to avoid similar misses between mapping and filters, but this is strictly optional for this PR.

Also applies to: 185-186, 292-293

packages/integrations/contentful-cms/src/modules/cms/mappers/blocks/cms.order-list.mapper.ts (1)

78-79: Contentful mocks now in sync with status mapping and mocked integration

The new REQUIRES_ACTION and ARCHIVED status options for EN/DE/PL correctly reuse the existing mapping keys and translations, and they mirror the mocked integration file, so both data sources expose the same filter set.

As a future improvement, you might pull these status options from a shared enum/config used by both integrations to prevent drift, but the current change is solid as-is.

Also applies to: 185-186, 292-293

packages/blocks/ticket-list/src/frontend/TicketList.client.tsx (1)

68-74: Topic column custom render with link looks correct

Changing the topic column to type: 'custom' and rendering a Button as a LinkComponent to ticket.detailsUrl is a clean way to make the subject clickable and truncated within the cell; assuming DataList already supports custom columns, this is good. If the entire row is also clickable elsewhere, consider styling the LinkComponent directly (without the Button) to avoid nested interactive semantics, but that’s optional.

packages/ui/src/elements/toggle-group.tsx (1)

9-15: currentValue in ToggleGroupContext works for controlled groups; watch uncontrolled usage

Deriving currentValue from props.value and passing it through ToggleGroupContext lets ToggleGroupItem know which values are active, which is ideal for controlled groups (where value is set on the root). For groups that rely only on defaultValue / uncontrolled state, currentValue will stay undefined, so activeIcon will never render even though items can still be toggled on. If you intend to support icons there too, consider enforcing controlled usage at call sites or extending this logic to also track state via onValueChange.

Also applies to: 34-35, 47-49

packages/ui/src/globals.css (1)

63-63: New --color-card-light token is fine; Biome errors are likely tooling noise

--color-card-light: var(--card-light); matches the pattern of the surrounding --color-card variables and is valid inside a Tailwind v4 @theme inline block. The Biome 2.1.2 parse / noUnknownPseudoClass errors for this line are very likely due to incomplete support for Tailwind’s @theme syntax rather than a real CSS issue. I’d keep the token and address this at the tooling level (upgrade Biome or relax linting for these theme files) rather than removing the variable.

apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.tsx (1)

37-45: Login detection logic is correct.

The logic properly handles both localized and internal login paths, and correctly determines when to show the sign-in button. The defensive checks for undefined pathname and missing routing configuration are good practices.

Consider memoizing the loginPaths array to avoid recreating it on every render:

+const loginPaths = React.useMemo(
+    () => [LOGIN_PATH, ...Object.values(routing.pathnames[LOGIN_PATH] || {})],
+    []
+);
+
 // Check if we're on login page
 const normalizedPathname = pathname?.split('?')[0] || '';
-const loginPaths = [LOGIN_PATH, ...Object.values(routing.pathnames[LOGIN_PATH] || {})];
 const isLoginPage = loginPaths.some(
     (loginPath) => normalizedPathname === loginPath || normalizedPathname.startsWith(`${loginPath}/`),
 );
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2c780d5 and 3025695.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (24)
  • apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.tsx (4 hunks)
  • apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.types.ts (1 hunks)
  • apps/frontend/src/containers/Header/Header.tsx (2 hunks)
  • apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.tsx (3 hunks)
  • apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.types.ts (1 hunks)
  • apps/frontend/src/i18n/routing.ts (1 hunks)
  • packages/blocks/notification-list/src/frontend/NotificationList.client.tsx (1 hunks)
  • packages/blocks/orders-summary/src/frontend/OrdersSummary.client.tsx (2 hunks)
  • packages/blocks/ticket-details/src/frontend/TicketDetails.client.tsx (1 hunks)
  • packages/blocks/ticket-list/src/frontend/TicketList.client.tsx (1 hunks)
  • packages/framework/src/modules/cms/models/header.model.ts (1 hunks)
  • packages/integrations/contentful-cms/src/modules/cms/mappers/blocks/cms.order-list.mapper.ts (3 hunks)
  • packages/integrations/contentful-cms/src/modules/cms/mappers/blocks/cms.ticket-details.mapper.ts (1 hunks)
  • packages/integrations/contentful-cms/src/modules/cms/mappers/cms.header.mapper.ts (1 hunks)
  • packages/integrations/contentful-cms/src/modules/cms/mappers/mocks/pages/service-details.page.ts (3 hunks)
  • packages/integrations/mocked/src/modules/cms/mappers/blocks/cms.order-list.mapper.ts (3 hunks)
  • packages/integrations/mocked/src/modules/cms/mappers/blocks/cms.ticket-details.mapper.ts (1 hunks)
  • packages/integrations/mocked/src/modules/cms/mappers/cms.header.mapper.ts (3 hunks)
  • packages/integrations/mocked/src/modules/cms/mappers/mocks/pages/service-details.page.ts (3 hunks)
  • packages/integrations/strapi-cms/src/modules/cms/mappers/cms.header.mapper.ts (1 hunks)
  • packages/ui/src/components/Filters/Filters.tsx (1 hunks)
  • packages/ui/src/elements/toggle-group.tsx (3 hunks)
  • packages/ui/src/globals.css (1 hunks)
  • packages/ui/src/theme.css (2 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-11-13T15:40:10.528Z
Learnt from: marcinkrasowski
Repo: o2sdev/openselfservice PR: 348
File: packages/blocks/notification-summary/src/frontend/NotificationSummary.renderer.tsx:1-15
Timestamp: 2025-11-13T15:40:10.528Z
Learning: In next-intl 3.0+, hook-style APIs like useLocale(), useTranslations(), and useFormatter() can be used in non-async Server Components without the 'use client' directive. The library provides server-optimized implementations automatically. Only async Server Components need to use the await-based APIs like getLocale() from next-intl/server.

Applied to files:

  • packages/blocks/orders-summary/src/frontend/OrdersSummary.client.tsx
🧬 Code graph analysis (4)
apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.types.ts (2)
apps/frontend/src/containers/Header/Header.tsx (1)
  • Header (23-107)
packages/framework/src/modules/cms/models/header.model.ts (1)
  • Header (4-24)
apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.tsx (3)
apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.types.ts (1)
  • DesktopNavigationProps (5-14)
apps/frontend/src/i18n/routing.ts (2)
  • LOGIN_PATH (6-6)
  • routing (8-18)
packages/ui/src/elements/button.tsx (1)
  • Button (19-19)
apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.types.ts (2)
apps/frontend/src/containers/Header/Header.tsx (1)
  • Header (23-107)
packages/framework/src/modules/cms/models/header.model.ts (1)
  • Header (4-24)
apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.tsx (2)
apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.types.ts (1)
  • MobileNavigationProps (5-16)
apps/frontend/src/i18n/routing.ts (4)
  • usePathname (22-22)
  • usePathname (25-25)
  • LOGIN_PATH (6-6)
  • routing (8-18)
🪛 Biome (2.1.2)
packages/ui/src/globals.css

[error] 63-63: expected , but instead found --color-card-light

Remove --color-card-light

(parse)


[error] 63-63: expected , but instead found (

Remove (

(parse)


[error] 63-63: expected , but instead found --card-light

Remove --card-light

(parse)


[error] 63-63: expected , but instead found )

Remove )

(parse)


[error] 63-63: Unexpected unknown pseudo-class var

See MDN web docs for more details.

(lint/correctness/noUnknownPseudoClass)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy-preview
🔇 Additional comments (23)
packages/integrations/contentful-cms/src/modules/cms/mappers/blocks/cms.ticket-details.mapper.ts (1)

76-80: Polish OPEN status label change looks good

The updated "W rozpatrzeniu" label is consistent with the EN/DE meanings for the OPEN status and keeps the mapper shape unchanged. No functional risk here.

packages/integrations/mocked/src/modules/cms/mappers/blocks/cms.ticket-details.mapper.ts (1)

76-80: Mocked PL OPEN status label aligned with Contentful mapping

The "W rozpatrzeniu" value keeps mocked data consistent with the Contentful CMS mapper and UI wording, with no structural or behavioral changes.

packages/ui/src/components/Filters/Filters.tsx (1)

86-86: LGTM! Mobile button order reversal matches PR objectives.

The change from flex-col to flex-col-reverse correctly reverses the button order on mobile viewports, placing the primary "Filters" action above the "Remove filters" action. On desktop (≥ sm breakpoint), the flex-row layout preserves the original left-to-right order.

packages/blocks/ticket-details/src/frontend/TicketDetails.client.tsx (1)

138-138: LGTM! Styling change aligns with design fix objective.

The addition of bg-card-light to the attachment container appropriately addresses the PR objective to "fix attachment color to match the design." The class is part of the broader UI theme updates mentioned in the AI summary.

packages/blocks/notification-list/src/frontend/NotificationList.client.tsx (1)

80-88: Title column link implementation looks good; confirm detailsUrl invariants

The switch to a custom cell with a link-styled Button nicely matches the requirement to make notification titles clickable while preserving truncation and alignment. One thing to confirm: if notification.detailsUrl is ever optional or empty, this will render an invalid link. If that’s possible in any backend integration, consider a guard (e.g., fallback to plain text or disabling the link for such rows).

packages/integrations/contentful-cms/src/modules/cms/mappers/mocks/pages/service-details.page.ts (1)

4-4: Service details mock IDs updated consistently

Updating the id to '15' for EN/DE/PL keeps these Contentful mocks in sync across locales and with the mocked integration; no behavioral impact or issues from this change alone.

Also applies to: 52-52, 100-100

packages/integrations/mocked/src/modules/cms/mappers/mocks/pages/service-details.page.ts (1)

4-4: Mocked service details IDs aligned with other CMS mocks

Setting id to '15' for all three locales keeps the mocked CMS pages consistent with the Contentful mocks and each other; no functional concerns here.

Also applies to: 52-52, 100-100

packages/ui/src/elements/toggle-group.tsx (1)

55-60: ToggleGroupItem refactor and activeIcon rendering look solid

The forwardRef wrapper, activeIcon/iconPosition props, and isActive computation against context.currentValue correctly handle both single and multi-value groups. Explicitly passing value through to ToggleGroupPrimitive.Item preserves Radix behavior, and the inner flex container cleanly arranges label and optional icon. No issues from this change.

Also applies to: 61-97

packages/blocks/orders-summary/src/frontend/OrdersSummary.client.tsx (1)

4-4: Check icon as activeIcon integrates cleanly with ToggleGroupItem

Passing <Check className="h-4 w-4" /> as activeIcon for each ToggleGroupItem ties directly into the new toggle-group API and will show a checkmark whenever the item’s value matches the group’s controlled value (${range.value}-${range.type}). This is a straightforward UX improvement with no behavioral side effects.

Also applies to: 122-126

packages/integrations/mocked/src/modules/cms/mappers/cms.header.mapper.ts (1)

17-17: signInLabel added to mocked headers matches new Header surface

Adding localized signInLabel strings for EN/DE/PL keeps the mocked header data in sync with the extended Header model and supports the new sign-in button in navigation without altering existing mapping logic.

Also applies to: 100-100, 183-183

packages/framework/src/modules/cms/models/header.model.ts (1)

17-17: Header model extended with optional signInLabel

Adding signInLabel?: string cleanly extends the Header model to support the new sign-in button while remaining backward compatible with existing data where this field is absent.

apps/frontend/src/containers/Header/Header.tsx (1)

85-86: LGTM! Consistent prop propagation.

The new signInLabel and isSignedIn props are correctly passed to both navigation components, ensuring consistent sign-in functionality across desktop and mobile breakpoints.

Also applies to: 99-100

apps/frontend/src/i18n/routing.ts (1)

6-6: LGTM! Centralized login path constant.

Introducing LOGIN_PATH as an exported constant enables consistent login route references across the codebase and properly integrates with the internationalized routing configuration.

Also applies to: 12-16

apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.types.ts (1)

14-15: LGTM! Type-safe prop additions.

The new optional properties align with the CMS header model and mirror the desktop navigation interface, ensuring consistent typing across navigation components.

apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.types.ts (1)

12-13: LGTM! Consistent type definitions.

The optional properties maintain type safety through CMS model references and align with the mobile navigation interface.

packages/ui/src/theme.css (2)

64-64: LGTM! Format change with equivalent color value.

The --foreground value change from hsl(0 0% 98%) to #fafafa maintains the same visual appearance while switching to hex format.


6-6: Verify intentional use of identical --card-light value across themes.

The --card-light variable uses the same HSL value (hsl(220 13.04% 95.49%)) in both light and dark themes. Typically, theme variables have different values to ensure proper contrast in each theme context. Confirm this is an intentional design decision and provides sufficient contrast when used in dark theme contexts.

Also applies to: 67-67

apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.tsx (2)

39-47: LGTM! Robust login page detection and conditional rendering.

The login page detection logic correctly:

  • Strips query strings to avoid false negatives
  • Checks both the base LOGIN_PATH and all locale-specific variants from the routing configuration
  • Handles both exact matches and path prefixes

The showSignInButton condition properly ensures the button only renders when the user is not signed in, not on a login page, and signInLabel is provided (addressing the CMS mapper undefined placeholder).


191-196: LGTM! Accessible sign-in button implementation.

The button implementation properly:

  • Uses the Button component with appropriate variant
  • Wraps NextLink for client-side navigation
  • Provides the CMS-sourced label for localization support
  • Conditionally renders based on sign-in state and page context
packages/integrations/contentful-cms/src/modules/cms/mappers/cms.header.mapper.ts (1)

49-49: The UI already handles undefined signInLabel gracefully.

Both DesktopNavigation.tsx and MobileNavigation.tsx check signInLabel as a truthy condition (const showSignInButton = !isSignedIn && !isLoginPage && signInLabel). When signInLabel is undefined, the button simply doesn't render, which is the correct behavior. No action needed.

apps/frontend/src/containers/Header/MobileNavigation/MobileNavigation.tsx (3)

19-19: LGTM! Import additions support login detection.

The imported LOGIN_PATH and routing constants are correctly used in the login page detection logic below.


32-33: LGTM! Props correctly added.

The signInLabel and isSignedIn props match the type definition and are properly utilized in the component logic.


124-129: LGTM! Sign-in button correctly implemented.

The button is properly conditionally rendered, uses the internationalized NextLink component which will automatically handle route localization, and includes appropriate styling and accessibility.

# Conflicts:
#	package-lock.json
#	packages/ui/src/components/Filters/Filters.tsx
Comment thread apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.tsx Outdated
Comment thread apps/frontend/src/containers/Header/DesktopNavigation/DesktopNavigation.types.ts Outdated
@vercel vercel Bot temporarily deployed to Preview – o2s-docs December 4, 2025 15:00 Inactive
@vercel vercel Bot temporarily deployed to Preview – o2s-docs December 4, 2025 15:06 Inactive
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.changeset/gentle-eggs-report.md (1)

14-14: Enhance changelog message with more specificity.

The changeset message is quite generic. Given the PR objectives detail multiple specific fixes across notifications, tickets, orders, and help & support, consider providing a more detailed changelog entry that captures the key improvements (e.g., "added notification and ticket links, reversed filter button order on mobile, unified ticket status names, added sign-in button to navigation, fixed attachment styling, added missing order status and icons").

Also, replace "related with" with "related to" for grammatical accuracy.

Apply this diff to improve the changelog message:

- fixing various bugs related with blocks and ui components, adding sign-in button in navigation
+ Fixed various bugs: reversed filter/remove buttons on mobile, added links in notifications and tickets, unified status names, fixed attachment colors, added sign-in button to navigation, added missing order statuses and icons.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 88b46a8 and f9d11d4.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (1)
  • .changeset/gentle-eggs-report.md (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-11-14T14:21:20.382Z
Learnt from: marcinkrasowski
Repo: o2sdev/openselfservice PR: 357
File: .changeset/cold-showers-camp.md:1-9
Timestamp: 2025-11-14T14:21:20.382Z
Learning: In the o2sdev/openselfservice repository, new packages should always be added with a 'major' version bump in changesets to start at version 1.0.0, not 'minor'.

Applied to files:

  • .changeset/gentle-eggs-report.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy-preview
🔇 Additional comments (1)
.changeset/gentle-eggs-report.md (1)

2-12: Version bump strategy looks appropriate for a bug-fix release.

All packages are marked with "minor" version bumps, which is correct for existing packages receiving bug fixes rather than new features. This aligns with standard semantic versioning practices.

@lukasz-hycom lukasz-hycom merged commit db5b381 into main Dec 5, 2025
7 checks passed
@lukasz-hycom lukasz-hycom deleted the fix/reported-bugs-fixing branch December 5, 2025 08:16
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.

[Bug] Reverse order of buttons for filtering and removing filters

2 participants