Skip to content

Commit ebce3d0

Browse files
committed
Use anchor by default
1 parent 2d9bb9d commit ebce3d0

File tree

3 files changed

+6
-35
lines changed

3 files changed

+6
-35
lines changed

src/lib/routing.tsx

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, { createContext, useContext } from "react";
22
import type { ReactNode } from "react";
3-
import { assert } from "tsafe/assert";
43
import type { DetailedHTMLProps, AnchorHTMLAttributes } from "react";
54

65
type HTMLAnchorProps = DetailedHTMLProps<
@@ -17,14 +16,12 @@ export type RegisteredLinkProps = RegisterLink extends {
1716
Link: (props: infer LinkProps) => any;
1817
}
1918
? Omit<LinkProps, "children">
20-
: RegisterLink extends { Link: "a" }
21-
? Omit<HTMLAnchorProps, "children">
22-
: React.AriaAttributes & { className?: string };
19+
: Omit<HTMLAnchorProps, "children">;
2320

24-
const context = createContext<CreateLinkProviderPrams["Link"] | undefined>(undefined);
21+
const context = createContext<CreateLinkProviderPrams["Link"]>(props => <a {...props} />);
2522

2623
type CreateLinkProviderPrams = {
27-
Link: ((props: RegisteredLinkProps & { children: ReactNode }) => ReturnType<React.FC>) | "a";
24+
Link: (props: RegisteredLinkProps & { children: ReactNode }) => ReturnType<React.FC>;
2825
};
2926

3027
export function createDsfrLinkProvider(params: CreateLinkProviderPrams) {
@@ -44,16 +41,7 @@ export function createDsfrLinkProvider(params: CreateLinkProviderPrams) {
4441
}
4542

4643
export function useLink() {
47-
let Link = useContext(context);
48-
49-
assert(
50-
Link !== undefined,
51-
"You need to specify what routing library is in use in your project, see: https://react-dsfr.etalab.studio/routing"
52-
);
53-
54-
if (Link === "a") {
55-
Link = props => <a {...props} />;
56-
}
44+
const Link = useContext(context);
5745

5846
return { Link };
5947
}

stories/getStory.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,6 @@ import type { ArgType } from "@storybook/addons";
44
import { symToStr } from "tsafe/symToStr";
55
import { id } from "tsafe/id";
66
import { useIsDark, DsfrLangProvider } from "../dist/lib";
7-
import type { HTMLAnchorProps } from "../dist/lib";
8-
9-
declare module "../dist" {
10-
// eslint-disable-next-line @typescript-eslint/no-empty-interface
11-
export interface LinkProps extends HTMLAnchorProps {}
12-
}
137

148
export function getStoryFactory<Props extends Record<string, any>>(params: {
159
sectionName: string;

test/integration/cra/src/index.tsx

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,6 @@ import { useRoute, RouteProvider } from "./router";
77
import { Header } from "@codegouvfr/react-dsfr/Header";
88
import { fr } from "@codegouvfr/react-dsfr";
99
import { routes } from "./router";
10-
import { createDsfrLinkProvider } from "@codegouvfr/react-dsfr";
11-
12-
declare module "@codegouvfr/react-dsfr" {
13-
interface RegisterLink {
14-
Link: "a";
15-
}
16-
}
17-
18-
const { DsfrLinkProvider } = createDsfrLinkProvider({
19-
"Link": "a"
20-
});
2110

2211
startReactDsfr({
2312
"defaultColorScheme": "system"
@@ -36,7 +25,7 @@ function Root() {
3625
const route = useRoute();
3726

3827
return (
39-
<DsfrLinkProvider>
28+
<>
4029
<Header
4130
brandTop={<>INTITULE<br />OFFICIEL</>}
4231
serviceTitle="Nom du site / service"
@@ -67,7 +56,7 @@ function Root() {
6756
}
6857
})()}
6958
</div>
70-
</DsfrLinkProvider>
59+
</>
7160
);
7261

7362

0 commit comments

Comments
 (0)