Skip to content

Commit

Permalink
suppressHydrationWarning
Browse files Browse the repository at this point in the history
  • Loading branch information
Barsnes committed Nov 28, 2024
1 parent 5940da5 commit 48500e6
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 27 deletions.
6 changes: 4 additions & 2 deletions apps/_components/src/CodeSnippet/CodeSnippet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const plugins = [
];

type CodeSnippetProps = {
language?: 'css' | 'html' | 'ts' | 'markdown' | 'json' | 'shell';
language?: 'css' | 'html' | 'ts' | 'markdown' | 'json' | 'shell' | 'tsx';
children: string;
} & React.HTMLAttributes<HTMLDivElement>;

Expand All @@ -47,7 +47,8 @@ const CodeSnippet = ({
) {
try {
const formatted = await format(children, {
parser: language === 'ts' ? 'babel-ts' : language,
parser:
language === 'ts' || language === 'tsx' ? 'babel-ts' : language,
plugins,
});
setSnippet(formatted);
Expand All @@ -74,6 +75,7 @@ const CodeSnippet = ({
<div
className={cl(classes.codeSnippet, className)}
data-color-scheme='dark'
suppressHydrationWarning
{...rest}
>
{snippet && (
Expand Down
2 changes: 1 addition & 1 deletion apps/_components/src/logos/Udir.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export function Udir(rest: UdirProps) {
>
<title>Utdanningsdirektoratet logo</title>
<defs>
<style>
<style suppressHydrationWarning>
{`
.cls-1 {
fill: #fdfeff;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ function PostLayout({
</MdxContent>
</main>
</Container>
<style>
<style suppressHydrationWarning>
{`
header {
[data-color-scheme='dark'] &,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@ export default ({ children }) => (
Nokre gonger må du kanskje byte ut ein komponent med ein anna, for eksempel `Button` skulle vore ein `Link`.
Det er her `asChild` kjem inn i biletet.

<CodeSnippet language='ts' data-unstyled>
{`
import { Button, Link } from '@digdir/designsystemet-react';
<CodeSnippet language='tsx' data-unstyled>
{` import { Button, Link } from '@digdir/designsystemet-react';
<Button asChild>
<Link href='https://www.digdir.no'>Lenke til digdir.no</Link>
Expand All @@ -39,9 +38,8 @@ Dette skjer ved hjelp av Radix sin `Slot`-komponent. <sup>1</sup>
`Slot` mergar sine props ned på komponenten som ligg som underordna element. I tilfellet over vert `Button` sine props lagt til på `Link`-komponenten, og ein `a`-tagg vert rendra ut.
Når du brukar `asChild` kan du ikkje ha meir enn eit underordna element, men du kan ha så mange du vil inne i det elementet.

<CodeSnippet language='ts'>
{`
<>
<CodeSnippet language='tsx'>
{` <>
/* Dette kaster ein error */
<Button asChild>
<Icon />
Expand All @@ -55,7 +53,6 @@ Når du brukar `asChild` kan du ikkje ha meir enn eit underordna element, men du
Din lenke
</Link>
</Button>
</>
`}
</CodeSnippet>
Expand All @@ -65,15 +62,13 @@ Når du brukar `asChild` kan du ikkje ha meir enn eit underordna element, men du
Vi har tidlegare brukt ein `as` prop for å rendre som andre element. Men når du brukar denne, får du ikkje typesafety eller korrekte typar iht. elementet du har endret til med `as`.
`Slot` ordnar dette ved at du legg til alle props på det underordna elementet av komponenten, og dermed får typesafety.

<CodeSnippet language='ts'>
{`
<Button asChild>
<CodeSnippet language='tsx'>
{` <Button asChild>
<Link href='https://www.digdir.no' onClick={() => {}}>
<Icon />
Di lenke
</Link>
</Button>
`}
</Button>`}
</CodeSnippet>

Alt av klassenavn, aria-attributt og andre props som `Button` har, vil bli lagt til på `Link`-komponenten.
Expand All @@ -87,9 +82,8 @@ Dette betyr at dersom du stoppar eit event på din komponent, vil eventet på `S

Dersom ein av event handlerane er avhengig av `event.defaultPrevented`, så må du passe på at rekkefølgja er rett. <sup>2</sup>

<CodeSnippet language='ts'>
{`
<Button
<CodeSnippet language='tsx'>
{` <Button
asChild
onClick={(event) => {
if (!event.defaultPrevented)
Expand All @@ -109,20 +103,21 @@ Ynskjer du å bruke ein eigen komponent må du passe på å spre alle props, og

Komponentane dine vil då sjå slik ut:

<CodeSnippet language='ts'>
<CodeSnippet language='tsx'>
{`// uten props og ref
const MinKnapp = () => <button />
const MinKnapp = () => <button />
// med props
const MinKnapp = (props) => <button {...props} />
// med props og ref
const MinKnapp = React.forwardRef((props, forwardedRef) => (
<button
{...props}
ref={forwardedRef}
/>
<button
{...props}
ref={forwardedRef}
/>
))`}
</CodeSnippet>

Expand Down
2 changes: 1 addition & 1 deletion apps/storefront/app/komponenter/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export default function page() {
{sortedData.map((component) => (
<ComponentCard key={component.title} {...component} />
))}
<style>
<style suppressHydrationWarning>
{`
body {
background-color: var(--ds-color-neutral-background-subtle);
Expand Down
2 changes: 1 addition & 1 deletion apps/storefront/layouts/MenuPageLayout/MenuPageLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ const MenuPageLayout = ({ content, data, banner }: PageLayoutProps) => {
</div>
</main>
</Container>
<style>
<style suppressHydrationWarning>
{`
header {
[data-color-scheme='dark'] &,
Expand Down

0 comments on commit 48500e6

Please sign in to comment.