-
Notifications
You must be signed in to change notification settings - Fork 61
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
fix(web): Global alert banner - Handle null case #16298
Conversation
WalkthroughThe changes in the Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Layout
participant GlobalContextProvider
participant Page
participant AlertBanner
User->>Layout: Request Layout
Layout->>GlobalContextProvider: Wrap Page
GlobalContextProvider->>Page: Provide Context
Page->>Layout: Render Page
Layout->>AlertBanner: Check showAlertBanner
AlertBanner->>Layout: Display Alert if needed
Layout->>User: Render Complete Layout
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #16298 +/- ##
==========================================
- Coverage 36.86% 36.84% -0.03%
==========================================
Files 6798 6796 -2
Lines 140486 140404 -82
Branches 39936 39922 -14
==========================================
- Hits 51792 51725 -67
+ Misses 88694 88679 -15
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 10 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
There was a problem hiding this 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
🧹 Outside diff range and nitpick comments (5)
apps/web/layouts/main.tsx (5)
Line range hint
30-36
: Avoid suppressing TypeScript errors; properly typeabsoluteUrl
functionUsing
// @ts-expect-error
suppresses TypeScript errors, which can hide potential issues and reduce type safety. It's recommended to provide proper type annotations for theabsoluteUrl
function to adhere to TypeScript best practices.Apply this diff to fix the TypeScript errors:
+import { IncomingMessage } from 'http' + -// @ts-expect-error make web strict const absoluteUrl = (req, setLocalhost) => { +const absoluteUrl = (req: IncomingMessage | undefined, setLocalhost?: string) => { let protocol = 'https:' let host = req - ? req.headers['x-forwarded-host'] || req.headers['host'] + ? req.headers['x-forwarded-host'] ?? req.headers['host'] : window.location.host if (host.indexOf('localhost') > -1) { if (setLocalhost) host = setLocalhost protocol = 'http:' } return { protocol: protocol, host: host, origin: protocol + '//' + host, } }
Line range hint
105-107
: Avoid suppressing TypeScript errors; properly typerespOrigin
inLayoutProps
The use of
// @ts-expect-error
indicates thatrespOrigin
may not have proper type annotations in theLayoutProps
interface. To maintain type safety, it's important to define the type ofrespOrigin
.Define
respOrigin
in theLayoutProps
interface and remove the@ts-expect-error
comment:export interface LayoutProps { // Existing properties... + respOrigin: string // Other properties... } -// @ts-expect-error make web strict respOrigin,
Line range hint
663-666
: Potential null reference error when accessingreq.headers.cookie
In the expression
req.headers.cookie?.indexOf(alertBannerId) === -1
, ifreq
orreq.headers
is undefined, this can cause a runtime error. To prevent this, use optional chaining onheaders
as well.Apply this diff to safely access
req.headers.cookie
:alertBannerContent: { ...alertBanner, showAlertBanner: alertBanner?.showAlertBanner && - (!req?.headers.cookie || - req.headers.cookie?.indexOf(alertBannerId) === -1), + (!req?.headers?.cookie || + req.headers?.cookie?.indexOf(alertBannerId) === -1), },
Line range hint
689-690
: Avoid suppressing TypeScript errors; ensure proper type casting formenu
Using
// @ts-expect-error
to bypass TypeScript errors should be avoided. Instead, ensure that the type casting formenu
is correct to maintain type safety.Adjust the type assertion to match the expected type:
-// @ts-expect-error make web strict } as Menu) +} as MenuIf
menu
does not exactly match theMenu
type, consider transforming it appropriately or refining the type definition.
Line range hint
770-772
: Avoid suppressing TypeScript errors; aligncomponentProps
withComponent
propsThe
@ts-expect-error
suppression suggests a type mismatch betweencomponentProps
and the expected props ofComponent
. It's important to ensure thatcomponentProps
matches the expected prop types ofComponent
.Review and adjust the types to resolve the mismatch:
/** - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error make web strict */ <Component {...componentProps} />Consider updating the
LayoutWrapper
type or refining thecomponentProps
interface to ensure compatibility.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
📒 Files selected for processing (1)
- apps/web/layouts/main.tsx (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
apps/web/layouts/main.tsx (1)
Pattern
apps/**/*
: "Confirm that the code adheres to the following:
- NextJS best practices, including file structure, API routes, and static generation methods.
- Efficient state management and server-side rendering techniques.
- Optimal use of TypeScript for component and utility type safety."
Datadog ReportAll test runs ✅ 2 Total Test Services: 0 Failed, 2 Passed Test Services
|
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
…-pages (#16234) * Service portal removal. Add portals my pages * minor fixes * Fix * path fix * fix(portals-admin): locklist (#16279) * fix(portals-admin): locklist * tweak * msg id fix * tweak --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * feat(service-portal): feature flag resolver for documents (#16285) * fix: def info and alert * feat: add feature flag to resolver * fix: move ff call to seperate function --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * fix(vehicles-bulk-mileage): Fixes after testing review (#16295) * fix: testing fixes v1 * fix: testing comments v2 * fix: better message * fix: function name * fix: duplicate loading --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * feat(tests): New @island/testing/e2e library (#16287) * Add @swc-node/register and @swc/core * Add testing/e2e library * update project.json for testing/e2e * fix import for libTestingE2e --------- Co-authored-by: Kristofer <kristofer@andes.is> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * feat(parental-leave): ApplicationRights (#15901) * feat(parental-leave): ApplicationRights Added applicationRights to parental-leave when sending application. Since we are using a new way of calculating periods * Fix days used by period calculation * Tests for new periods * rename function with proper camelCase * Refactor: Made duplicate code into a function * Make ApplicationRights nullable * refactor: function instead of duplicate code * remove console.log * error handling for period data * clientConfig nullable fix * Fixes for calculation of months. And using clamp to get correct value of daysLeft * Multiply amount of months by 30 for period calculation with month durations * Fix old calculation of endDate with months --------- Co-authored-by: hfhelgason <hfhelgason@deloitte.is> Co-authored-by: veronikasif <54938148+veronikasif@users.noreply.github.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * feat(passport-application): Updated readme (#16296) * updated readme * updated readme * chore: nx format:write update dirty files --------- Co-authored-by: andes-it <builders@andes.is> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * fix(regulations-admin): date format signature, remove self affect, disclaimer text (#16288) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * fix(regulations-admin): No diff no addition in appendix (#16293) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * fix(web): Global alert banner - Handle null case (#16298) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * fix(web): Change custom syslumenn pages config for header (#16299) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * fix(j-s): Digital mailbox API (#16301) * feat(j-s): Block create subpoena on staging and dev * Update subpoena.service.ts * fix(j-s): Fix mailbox API * remove changes not meant for this branch * Update subpoena.service.ts * fix(j-s): reverting changes from other branch * Update subpoena.response.ts * Update subpoena.response.ts * Update subpoena.response.ts * Update subpoena.response.ts --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * fix(signature-collection): Fix list reviewed toggle (#16300) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * chore(scripts): Stricter shell script checking (#16242) * Set style level for shellcheck * Linting & formatting scripts * Remove _podman.sh script * Format all scripts * Add reviewdog/action-shfmt step * Configure shfmt * Merge from main * Linting * Move shfmt to before lint * Remove reviewdog * Allow external sources in shellcheck * Use Reviewdog for shellcheck * Set version for Reviewdog --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * chore(new-primary-school): Update messages namespace (#16302) Co-authored-by: veronikasif <54938148+veronikasif@users.noreply.github.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * feat(driving-license): check if 65+ renewal is possible (#16292) * check if 65 renewal is possible * remove console log * cleanup * coderabbit tweaks * coderabbit changes * quick fix * add type? --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> * feat(service-portal): default defender and has chosen fields for subpoena (#16306) * fix: def info and alert * feat: add feature flag to resolver * fix: move ff call to seperate function * feat: add default choices ans has chosen + loading states * fix: use type * fix: undefined type issue * fix: simplify check * Update service setup for my pages infra * chore: charts update dirty files * Remove from infra * undo rename --------- Co-authored-by: albinagu <47886428+albinagu@users.noreply.github.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Ásdís Erna Guðmundsdóttir <disa@hugsmidjan.is> Co-authored-by: Þorkell Máni Þorkelsson <wowthorkell@gmail.com> Co-authored-by: Svanhildur Einarsdóttir <54863023+svanaeinars@users.noreply.github.com> Co-authored-by: Kristofer <kristofer@andes.is> Co-authored-by: helgifr <helgifreyr95@gmail.com> Co-authored-by: hfhelgason <hfhelgason@deloitte.is> Co-authored-by: veronikasif <54938148+veronikasif@users.noreply.github.com> Co-authored-by: Rafn Árnason <rafnarnason@gmail.com> Co-authored-by: andes-it <builders@andes.is> Co-authored-by: Rúnar Vestmann <43557895+RunarVestmann@users.noreply.github.com> Co-authored-by: mannipje <135017126+mannipje@users.noreply.github.com> Co-authored-by: unakb <una@kolibri.is> Co-authored-by: juni-haukur <158475136+juni-haukur@users.noreply.github.com> Co-authored-by: birkirkristmunds <142495885+birkirkristmunds@users.noreply.github.com> Co-authored-by: Kristján Albert <kal@juni.is>
Global alert banner - Handle null case
What
Summary by CodeRabbit
New Features
Bug Fixes
Chores