Files
plane/apps/web/app/(all)/layout.preload.tsx
chuan bba4bb40c8
Some checks failed
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
feat: init
2025-11-11 01:56:44 +08:00

29 lines
895 B
TypeScript

"use client";
import { useEffect } from "react";
import ReactDOM from "react-dom";
// https://nextjs.org/docs/app/api-reference/functions/generate-metadata#link-relpreload
export const usePreloadResources = () => {
useEffect(() => {
const preloadItem = (url: string) => {
ReactDOM.preload(url, { as: "fetch", crossOrigin: "use-credentials" });
};
const urls = [
`${process.env.NEXT_PUBLIC_API_BASE_URL}/api/instances/`,
`${process.env.NEXT_PUBLIC_API_BASE_URL}/api/users/me/`,
`${process.env.NEXT_PUBLIC_API_BASE_URL}/api/users/me/profile/`,
`${process.env.NEXT_PUBLIC_API_BASE_URL}/api/users/me/settings/`,
`${process.env.NEXT_PUBLIC_API_BASE_URL}/api/users/me/workspaces/?v=${Date.now()}`,
];
urls.forEach((url) => preloadItem(url));
}, []);
};
export const PreloadResources = () => {
usePreloadResources();
return null;
};