@kasperrt/smolter 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{src/internal → .generated}/client/index.ts +1 -0
- package/.generated/core/environment.ts +43 -0
- package/{src/internal → .generated}/core/errors.ts +1 -1
- package/{src/internal → .generated}/core/index.ts +1 -0
- package/.generated/core/navigation-router.ts +107 -0
- package/.generated/core/navigation.ts +147 -0
- package/.generated/core/presentation.ts +108 -0
- package/.generated/core/resource-types.ts +44 -0
- package/.generated/core/resources.ts +444 -0
- package/.generated/core/responses.ts +86 -0
- package/{src/internal → .generated}/core/router.ts +136 -63
- package/{src/internal → .generated}/core/serialize.ts +7 -2
- package/.generated/core/store.ts +25 -0
- package/.generated/core/submission.ts +116 -0
- package/{src/internal → .generated}/core/types.ts +18 -1
- package/.generated/core/url.ts +29 -0
- package/.generated/core/utils.ts +5 -0
- package/.generated/preact/await.tsx +41 -0
- package/.generated/preact/client.tsx +93 -0
- package/.generated/preact/context.ts +59 -0
- package/.generated/preact/document.tsx +198 -0
- package/{src/internal → .generated}/preact/fetcher.ts +43 -23
- package/.generated/preact/form.ts +58 -0
- package/{src/internal → .generated}/preact/hooks.ts +25 -28
- package/.generated/preact/index.ts +34 -0
- package/.generated/preact/lazy-route.ts +100 -0
- package/.generated/preact/navigation-state.ts +9 -0
- package/.generated/preact/navigation.tsx +147 -0
- package/.generated/preact/root-context.ts +21 -0
- package/.generated/preact/root-data.ts +45 -0
- package/.generated/preact/route-hooks.tsx +170 -0
- package/.generated/preact/route-types.ts +76 -0
- package/.generated/preact/router.tsx +107 -0
- package/{src/internal → .generated}/preact/routes.ts +17 -9
- package/.generated/react/context.ts +59 -0
- package/.generated/react/data.ts +25 -0
- package/{src/internal → .generated}/react/fetcher.ts +13 -11
- package/.generated/react/form.ts +58 -0
- package/{src/internal → .generated}/react/hooks.ts +9 -14
- package/{src/internal/preact → .generated/react}/index.ts +5 -1
- package/{src/internal → .generated}/react/link.ts +13 -21
- package/.generated/react/resources/components.tsx +404 -0
- package/{src/internal → .generated}/react/routes.ts +17 -9
- package/.generated/server/application.tsx +185 -0
- package/.generated/server/assets.ts +19 -0
- package/.generated/server/handler.ts +69 -0
- package/.generated/server/http.ts +55 -0
- package/{src/internal → .generated}/server/index.ts +3 -3
- package/.generated/server/node.ts +4 -0
- package/.generated/server/preact.ts +7 -0
- package/.generated/vite/application/browser-boundary.ts +42 -0
- package/.generated/vite/application/lazy-files.ts +136 -0
- package/.generated/vite/application/vite.ts +144 -0
- package/{src/preact-vite.ts → .generated/vite/preact.ts} +9 -3
- package/{src/react-vite.ts → .generated/vite/react.ts} +3 -3
- package/CHANGELOG.md +54 -0
- package/README.md +227 -35
- package/dist/client/deserialize.js +10 -0
- package/dist/{internal/client → client}/index.d.ts +1 -0
- package/dist/client/index.js +46 -0
- package/dist/core/environment.d.ts +12 -0
- package/dist/core/environment.js +23 -0
- package/dist/core/errors.js +7 -0
- package/dist/{internal/core → core}/index.d.ts +1 -0
- package/dist/core/match.js +33 -0
- package/dist/core/navigation-router.d.ts +15 -0
- package/dist/core/navigation-router.js +64 -0
- package/dist/core/navigation.d.ts +15 -0
- package/dist/core/navigation.js +92 -0
- package/dist/core/presentation.d.ts +5 -0
- package/dist/core/presentation.js +69 -0
- package/dist/core/resource-types.d.ts +37 -0
- package/dist/core/resources.d.ts +19 -0
- package/dist/core/resources.js +345 -0
- package/dist/core/responses.d.ts +15 -0
- package/dist/core/responses.js +48 -0
- package/dist/{internal/core → core}/router.d.ts +1 -1
- package/dist/core/router.js +204 -0
- package/dist/{internal/core → core}/serialize.d.ts +2 -0
- package/dist/core/serialize.js +17 -0
- package/dist/core/store.d.ts +6 -0
- package/dist/core/store.js +21 -0
- package/dist/core/submission.d.ts +30 -0
- package/dist/core/submission.js +41 -0
- package/dist/{internal/core → core}/types.d.ts +16 -1
- package/dist/core/url.d.ts +7 -0
- package/dist/core/url.js +12 -0
- package/dist/core/utils.d.ts +5 -0
- package/dist/core/utils.js +5 -0
- package/dist/files/index.js +64 -0
- package/dist/preact/await.d.ts +7 -0
- package/dist/preact/await.js +19 -0
- package/dist/preact/client.d.ts +7 -0
- package/dist/preact/client.js +67 -0
- package/dist/preact/context.d.ts +18 -0
- package/dist/preact/context.js +23 -0
- package/dist/preact/document.d.ts +15 -0
- package/dist/preact/document.js +155 -0
- package/dist/{internal/preact → preact}/fetcher.d.ts +9 -5
- package/dist/preact/fetcher.js +45 -0
- package/dist/{internal/preact → preact}/form.d.ts +5 -6
- package/dist/preact/form.js +21 -0
- package/dist/{internal/preact → preact}/hooks.d.ts +7 -6
- package/dist/preact/hooks.js +25 -0
- package/dist/preact/index.d.ts +18 -0
- package/dist/preact/index.js +15 -0
- package/dist/preact/lazy-route.d.ts +19 -0
- package/dist/preact/lazy-route.js +51 -0
- package/dist/preact/navigation-state.d.ts +2 -0
- package/dist/preact/navigation-state.js +9 -0
- package/dist/preact/navigation.d.ts +28 -0
- package/dist/preact/navigation.js +60 -0
- package/dist/preact/root-context.d.ts +13 -0
- package/dist/preact/root-context.js +9 -0
- package/dist/preact/root-data.d.ts +8 -0
- package/dist/preact/root-data.js +28 -0
- package/dist/preact/route-hooks.d.ts +32 -0
- package/dist/preact/route-hooks.js +94 -0
- package/dist/preact/route-types.d.ts +54 -0
- package/dist/preact/router.d.ts +16 -0
- package/dist/preact/router.js +63 -0
- package/dist/{internal/preact → preact}/routes.d.ts +1 -1
- package/dist/preact/routes.js +12 -0
- package/dist/{internal/preact → preact}/runtime.js +1 -1
- package/dist/react/context.d.ts +18 -0
- package/dist/react/context.js +23 -0
- package/dist/react/data.d.ts +5 -0
- package/dist/react/data.js +3 -0
- package/dist/{internal/react → react}/fetcher.d.ts +2 -2
- package/dist/react/fetcher.js +34 -0
- package/dist/{internal/react → react}/form.d.ts +5 -6
- package/dist/react/form.js +21 -0
- package/dist/react/hooks.js +25 -0
- package/dist/{internal/react → react}/index.d.ts +1 -1
- package/dist/react/index.js +10 -0
- package/dist/{internal/react → react}/link.d.ts +2 -2
- package/dist/react/link.js +27 -0
- package/dist/react/resources/components.d.ts +64 -0
- package/dist/react/resources/components.js +239 -0
- package/dist/{internal/react → react}/routes.d.ts +1 -1
- package/dist/react/routes.js +12 -0
- package/dist/react/runtime.js +1 -0
- package/dist/server/application.d.ts +4 -0
- package/dist/server/application.js +119 -0
- package/dist/server/assets.d.ts +5 -0
- package/dist/server/assets.js +7 -0
- package/dist/server/handler.d.ts +19 -0
- package/dist/server/handler.js +22 -0
- package/dist/server/http.d.ts +4 -0
- package/dist/server/http.js +27 -0
- package/dist/server/index.js +76 -0
- package/dist/server/node.d.ts +3 -0
- package/dist/server/node.js +3 -0
- package/dist/server/preact.d.ts +3 -0
- package/dist/server/preact.js +4 -0
- package/dist/vite/application/browser-boundary.d.ts +3 -0
- package/dist/vite/application/browser-boundary.js +35 -0
- package/dist/vite/application/lazy-files.d.ts +2 -0
- package/dist/vite/application/lazy-files.js +87 -0
- package/dist/vite/application/vite.d.ts +9 -0
- package/dist/vite/application/vite.js +101 -0
- package/dist/vite/index.js +104 -0
- package/dist/{preact-vite.d.ts → vite/preact.d.ts} +5 -3
- package/dist/vite/preact.js +15 -0
- package/dist/{react-vite.d.ts → vite/react.d.ts} +3 -3
- package/dist/vite/react.js +14 -0
- package/dist/vite/transport.js +35 -0
- package/jsr.json +28 -16
- package/package.json +116 -36
- package/dist/client.d.ts +0 -2
- package/dist/client.js +0 -2
- package/dist/core.d.ts +0 -2
- package/dist/core.js +0 -2
- package/dist/files.d.ts +0 -2
- package/dist/files.js +0 -2
- package/dist/internal/client/deserialize.js +0 -11
- package/dist/internal/client/index.js +0 -44
- package/dist/internal/core/errors.js +0 -6
- package/dist/internal/core/index.js +0 -7
- package/dist/internal/core/match.js +0 -27
- package/dist/internal/core/router.js +0 -189
- package/dist/internal/core/serialize.js +0 -13
- package/dist/internal/core/types.js +0 -5
- package/dist/internal/core/url.d.ts +0 -2
- package/dist/internal/core/url.js +0 -6
- package/dist/internal/files/index.js +0 -77
- package/dist/internal/preact/context.d.ts +0 -18
- package/dist/internal/preact/context.js +0 -20
- package/dist/internal/preact/fetcher.js +0 -28
- package/dist/internal/preact/form.js +0 -41
- package/dist/internal/preact/hooks.js +0 -35
- package/dist/internal/preact/index.d.ts +0 -9
- package/dist/internal/preact/index.js +0 -7
- package/dist/internal/preact/link.d.ts +0 -12
- package/dist/internal/preact/link.js +0 -28
- package/dist/internal/preact/routes.js +0 -22
- package/dist/internal/react/context.d.ts +0 -18
- package/dist/internal/react/context.js +0 -20
- package/dist/internal/react/fetcher.js +0 -28
- package/dist/internal/react/form.js +0 -41
- package/dist/internal/react/hooks.js +0 -35
- package/dist/internal/react/index.js +0 -7
- package/dist/internal/react/link.js +0 -28
- package/dist/internal/react/routes.js +0 -22
- package/dist/internal/react/runtime.js +0 -2
- package/dist/internal/server/index.js +0 -69
- package/dist/internal/vite/index.js +0 -132
- package/dist/internal/vite/transport.js +0 -42
- package/dist/preact-client.d.ts +0 -2
- package/dist/preact-client.js +0 -2
- package/dist/preact-server.d.ts +0 -2
- package/dist/preact-server.js +0 -2
- package/dist/preact-vite.js +0 -9
- package/dist/preact.d.ts +0 -2
- package/dist/preact.js +0 -2
- package/dist/react-client.d.ts +0 -2
- package/dist/react-client.js +0 -2
- package/dist/react-server.d.ts +0 -2
- package/dist/react-server.js +0 -2
- package/dist/react-vite.js +0 -9
- package/dist/react.d.ts +0 -2
- package/dist/react.js +0 -2
- package/dist/server.d.ts +0 -2
- package/dist/server.js +0 -2
- package/dist/utils.d.ts +0 -5
- package/dist/utils.js +0 -5
- package/dist/vite.d.ts +0 -2
- package/dist/vite.js +0 -2
- package/src/client.ts +0 -2
- package/src/core.ts +0 -2
- package/src/files.ts +0 -2
- package/src/internal/core/url.ts +0 -6
- package/src/internal/preact/context.ts +0 -46
- package/src/internal/preact/form.ts +0 -79
- package/src/internal/preact/link.ts +0 -46
- package/src/internal/react/context.ts +0 -46
- package/src/internal/react/form.ts +0 -79
- package/src/internal/react/index.ts +0 -13
- package/src/preact-client.ts +0 -2
- package/src/preact-server.ts +0 -2
- package/src/preact.ts +0 -2
- package/src/react-client.ts +0 -2
- package/src/react-server.ts +0 -2
- package/src/react.ts +0 -2
- package/src/server.ts +0 -2
- package/src/utils.ts +0 -5
- package/src/vite.ts +0 -2
- /package/{src/internal → .generated}/client/deserialize.ts +0 -0
- /package/{src/internal → .generated}/core/match.ts +0 -0
- /package/{src/internal → .generated}/files/index.ts +0 -0
- /package/{src/internal → .generated}/preact/runtime.ts +0 -0
- /package/{src/internal → .generated}/react/runtime.ts +0 -0
- /package/{src/internal → .generated}/vite/index.ts +0 -0
- /package/{src/internal → .generated}/vite/transport.ts +0 -0
- /package/dist/{internal/client → client}/deserialize.d.ts +0 -0
- /package/dist/{internal/core → core}/errors.d.ts +0 -0
- /package/dist/{internal/core → core}/match.d.ts +0 -0
- /package/dist/{internal/files → files}/index.d.ts +0 -0
- /package/dist/{internal/preact → preact}/runtime.d.ts +0 -0
- /package/dist/{internal/react → react}/hooks.d.ts +0 -0
- /package/dist/{internal/react → react}/runtime.d.ts +0 -0
- /package/dist/{internal/server → server}/index.d.ts +0 -0
- /package/dist/{internal/vite → vite}/index.d.ts +0 -0
- /package/dist/{internal/vite → vite}/transport.d.ts +0 -0
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Preact components and typed data hooks. Import from @kasperrt/smolter/preact.
|
|
3
|
-
* @module
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { Fetcher, SubmitOptions } from "../core/index.ts";
|
|
7
|
-
import { internalURL } from "../core/index.ts";
|
|
8
|
-
import { useRouter } from "./context.ts";
|
|
9
|
-
import type { FormHTMLAttributes, ReactNode } from "./runtime.ts";
|
|
10
|
-
import { createElement } from "./runtime.ts";
|
|
11
|
-
|
|
12
|
-
/** Form attributes with GET loader requests or POST, PUT, PATCH, and DELETE actions. */
|
|
13
|
-
export interface FormProps
|
|
14
|
-
extends Omit<FormHTMLAttributes<HTMLFormElement>, "action" | "method"> {
|
|
15
|
-
action?: string;
|
|
16
|
-
method?: "get" | "post" | "put" | "patch" | "delete";
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
type FormSubmitEvent = Parameters<NonNullable<FormProps["onSubmit"]>>[0];
|
|
20
|
-
|
|
21
|
-
interface InternalFormProps extends FormProps {
|
|
22
|
-
fetcher?: Fetcher;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** Submit form data to a registered route without a document reload. */
|
|
26
|
-
export function Form({
|
|
27
|
-
action,
|
|
28
|
-
method = "post",
|
|
29
|
-
fetcher,
|
|
30
|
-
onSubmit,
|
|
31
|
-
...props
|
|
32
|
-
}: InternalFormProps): ReactNode {
|
|
33
|
-
const router = useRouter();
|
|
34
|
-
const submit = (event: FormSubmitEvent) => {
|
|
35
|
-
onSubmit?.(event);
|
|
36
|
-
|
|
37
|
-
if (event.defaultPrevented) return;
|
|
38
|
-
|
|
39
|
-
const submitter = (event as SubmitEvent).submitter;
|
|
40
|
-
const target = internalURL(
|
|
41
|
-
router.getSnapshot().url,
|
|
42
|
-
submitter?.getAttribute("formaction") ?? action,
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
if (!target) return;
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
|
|
48
|
-
const data = new FormData(event.currentTarget, submitter);
|
|
49
|
-
const verb = (
|
|
50
|
-
submitter?.getAttribute("formmethod") ?? method
|
|
51
|
-
).toUpperCase();
|
|
52
|
-
|
|
53
|
-
if (verb === "GET") {
|
|
54
|
-
const search = new URLSearchParams();
|
|
55
|
-
|
|
56
|
-
for (const [key, value] of data)
|
|
57
|
-
search.append(key, typeof value === "string" ? value : value.name);
|
|
58
|
-
|
|
59
|
-
target.search = String(search);
|
|
60
|
-
|
|
61
|
-
void (fetcher ? fetcher.load : router.navigate)(target.href);
|
|
62
|
-
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const options: SubmitOptions = {
|
|
67
|
-
method: verb as SubmitOptions["method"],
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
void (fetcher ?? router).submit(target.href, data, options);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
return createElement("form", {
|
|
74
|
-
...props,
|
|
75
|
-
action,
|
|
76
|
-
method: method === "get" ? "get" : "post",
|
|
77
|
-
onSubmit: submit,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Preact components and typed data hooks. Import from @kasperrt/smolter/preact.
|
|
3
|
-
* @module
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { internalURL } from "../core/index.ts";
|
|
7
|
-
import { useRouter } from "./context.ts";
|
|
8
|
-
import type { AnchorHTMLAttributes, MouseEvent, ReactNode } from "./runtime.ts";
|
|
9
|
-
import { createElement } from "./runtime.ts";
|
|
10
|
-
|
|
11
|
-
/** Anchor attributes with internal navigation and optional history replacement. */
|
|
12
|
-
export interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
13
|
-
href: string;
|
|
14
|
-
replace?: boolean;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/** Render an anchor that handles internal navigation and preserves native modified clicks. */
|
|
18
|
-
export function Link({
|
|
19
|
-
href,
|
|
20
|
-
replace,
|
|
21
|
-
onClick,
|
|
22
|
-
...props
|
|
23
|
-
}: LinkProps): ReactNode {
|
|
24
|
-
const router = useRouter();
|
|
25
|
-
const click = (event: MouseEvent<HTMLAnchorElement>) => {
|
|
26
|
-
onClick?.(event);
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
event.defaultPrevented ||
|
|
30
|
-
event.button ||
|
|
31
|
-
event.metaKey ||
|
|
32
|
-
event.ctrlKey ||
|
|
33
|
-
event.altKey ||
|
|
34
|
-
event.shiftKey ||
|
|
35
|
-
props.download !== undefined ||
|
|
36
|
-
(props.target && props.target !== "_self")
|
|
37
|
-
)
|
|
38
|
-
return;
|
|
39
|
-
|
|
40
|
-
if (!internalURL(router.getSnapshot().url, href)) return;
|
|
41
|
-
event.preventDefault();
|
|
42
|
-
void router.navigate(href, { replace });
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
return createElement("a", { ...props, href, onClick: click });
|
|
46
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* React components and typed data hooks. Import from @kasperrt/smolter/react.
|
|
3
|
-
* @module
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { Router, Snapshot } from "../core/index.ts";
|
|
7
|
-
import type { ReactNode } from "./runtime.ts";
|
|
8
|
-
import {
|
|
9
|
-
createContext,
|
|
10
|
-
createElement,
|
|
11
|
-
useContext,
|
|
12
|
-
useEffect,
|
|
13
|
-
useSyncExternalStore,
|
|
14
|
-
} from "./runtime.ts";
|
|
15
|
-
|
|
16
|
-
const RouterContext = createContext<Router | undefined>(undefined);
|
|
17
|
-
|
|
18
|
-
/** Router instance and children rendered within its context. */
|
|
19
|
-
export interface RouterProviderProps {
|
|
20
|
-
router: Router;
|
|
21
|
-
children?: ReactNode;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/** Provide a router to descendant hooks and connect its browser lifecycle. */
|
|
25
|
-
export function RouterProvider({
|
|
26
|
-
router,
|
|
27
|
-
children,
|
|
28
|
-
}: RouterProviderProps): ReactNode {
|
|
29
|
-
useEffect(router.start, [router]);
|
|
30
|
-
|
|
31
|
-
return createElement(RouterContext.Provider, { value: router }, children);
|
|
32
|
-
}
|
|
33
|
-
/** Hooks require a RouterProvider. */
|
|
34
|
-
export function useRouter(): Router {
|
|
35
|
-
return useContext(RouterContext) as Router;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
type SnapshotSelector<T> = (snapshot: Snapshot) => T;
|
|
39
|
-
|
|
40
|
-
export function useSnapshot<T>(select: SnapshotSelector<T>): T {
|
|
41
|
-
const router = useRouter();
|
|
42
|
-
|
|
43
|
-
const getSnapshot = () => select(router.getSnapshot());
|
|
44
|
-
|
|
45
|
-
return useSyncExternalStore(router.subscribe, getSnapshot, getSnapshot);
|
|
46
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* React components and typed data hooks. Import from @kasperrt/smolter/react.
|
|
3
|
-
* @module
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { Fetcher, SubmitOptions } from "../core/index.ts";
|
|
7
|
-
import { internalURL } from "../core/index.ts";
|
|
8
|
-
import { useRouter } from "./context.ts";
|
|
9
|
-
import type { FormHTMLAttributes, ReactNode } from "./runtime.ts";
|
|
10
|
-
import { createElement } from "./runtime.ts";
|
|
11
|
-
|
|
12
|
-
/** Form attributes with GET loader requests or POST, PUT, PATCH, and DELETE actions. */
|
|
13
|
-
export interface FormProps
|
|
14
|
-
extends Omit<FormHTMLAttributes<HTMLFormElement>, "action" | "method"> {
|
|
15
|
-
action?: string;
|
|
16
|
-
method?: "get" | "post" | "put" | "patch" | "delete";
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
type FormSubmitEvent = Parameters<NonNullable<FormProps["onSubmit"]>>[0];
|
|
20
|
-
|
|
21
|
-
interface InternalFormProps extends FormProps {
|
|
22
|
-
fetcher?: Fetcher;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/** Submit form data to a registered route without a document reload. */
|
|
26
|
-
export function Form({
|
|
27
|
-
action,
|
|
28
|
-
method = "post",
|
|
29
|
-
fetcher,
|
|
30
|
-
onSubmit,
|
|
31
|
-
...props
|
|
32
|
-
}: InternalFormProps): ReactNode {
|
|
33
|
-
const router = useRouter();
|
|
34
|
-
const submit = (event: FormSubmitEvent) => {
|
|
35
|
-
onSubmit?.(event);
|
|
36
|
-
|
|
37
|
-
if (event.defaultPrevented) return;
|
|
38
|
-
|
|
39
|
-
const submitter = (event.nativeEvent as SubmitEvent).submitter;
|
|
40
|
-
const target = internalURL(
|
|
41
|
-
router.getSnapshot().url,
|
|
42
|
-
submitter?.getAttribute("formaction") ?? action,
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
if (!target) return;
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
|
|
48
|
-
const data = new FormData(event.currentTarget, submitter);
|
|
49
|
-
const verb = (
|
|
50
|
-
submitter?.getAttribute("formmethod") ?? method
|
|
51
|
-
).toUpperCase();
|
|
52
|
-
|
|
53
|
-
if (verb === "GET") {
|
|
54
|
-
const search = new URLSearchParams();
|
|
55
|
-
|
|
56
|
-
for (const [key, value] of data)
|
|
57
|
-
search.append(key, typeof value === "string" ? value : value.name);
|
|
58
|
-
|
|
59
|
-
target.search = String(search);
|
|
60
|
-
|
|
61
|
-
void (fetcher ? fetcher.load : router.navigate)(target.href);
|
|
62
|
-
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const options: SubmitOptions = {
|
|
67
|
-
method: verb as SubmitOptions["method"],
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
void (fetcher ?? router).submit(target.href, data, options);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
return createElement("form", {
|
|
74
|
-
...props,
|
|
75
|
-
action,
|
|
76
|
-
method: method === "get" ? "get" : "post",
|
|
77
|
-
onSubmit: submit,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/** Framework components and typed data hooks. @module */
|
|
2
|
-
export type * from "../core/index.ts";
|
|
3
|
-
export { createRouter, defineRoute } from "../core/index.ts";
|
|
4
|
-
export {
|
|
5
|
-
RouterProvider,
|
|
6
|
-
type RouterProviderProps,
|
|
7
|
-
useRouter,
|
|
8
|
-
} from "./context.ts";
|
|
9
|
-
export * from "./fetcher.ts";
|
|
10
|
-
export * from "./form.ts";
|
|
11
|
-
export * from "./hooks.ts";
|
|
12
|
-
export * from "./link.ts";
|
|
13
|
-
export * from "./routes.ts";
|
package/src/preact-client.ts
DELETED
package/src/preact-server.ts
DELETED
package/src/preact.ts
DELETED
package/src/react-client.ts
DELETED
package/src/react-server.ts
DELETED
package/src/react.ts
DELETED
package/src/server.ts
DELETED
package/src/utils.ts
DELETED
package/src/vite.ts
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|