this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

wut

+32
+1
package.json
··· 28 28 "@tanstack/react-router-devtools": "^1.166.13", 29 29 "@tanstack/react-router-with-query": "^1.130.17", 30 30 "@tanstack/react-start": "^1.167.50", 31 + "@tanstack/start-static-server-functions": "^1.166.36", 31 32 "@vitejs/plugin-rsc": "^0.5.25", 32 33 "class-variance-authority": "^0.7.1", 33 34 "clsx": "^2.1.1",
+22
pnpm-lock.yaml
··· 57 57 '@tanstack/react-start': 58 58 specifier: ^1.167.50 59 59 version: 1.167.50(@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(crossws@0.4.5(srvx@0.11.15))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) 60 + '@tanstack/start-static-server-functions': 61 + specifier: ^1.166.36 62 + version: 1.166.36(@tanstack/react-start@1.167.50(@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(crossws@0.4.5(srvx@0.11.15))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) 60 63 '@vitejs/plugin-rsc': 61 64 specifier: ^0.5.25 62 65 version: 0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) ··· 2270 2273 resolution: {integrity: sha512-oTJ/bu5pFuX5vh0OqRfZdXLWauOKIY1w3X+Q9iL6NQ38mhnWGmCVgMxAk+wX7KGSdjmXokpSNbBXTaxk9fcQLA==} 2271 2274 engines: {node: '>=22.12.0'} 2272 2275 hasBin: true 2276 + 2277 + '@tanstack/start-static-server-functions@1.166.36': 2278 + resolution: {integrity: sha512-tiFGDgt0LQKjR5PkUtVHFOk8Jr1gErzpMJaGaytM6f3JZSlJTqh0WJ2iNEQNWatFXFfUZFbZidKXGFNJEIJJ5A==} 2279 + engines: {node: '>=22.12.0'} 2280 + peerDependencies: 2281 + '@tanstack/react-start': ^1.167.50 2282 + '@tanstack/solid-start': ^1.167.48 2283 + peerDependenciesMeta: 2284 + '@tanstack/react-start': 2285 + optional: true 2286 + '@tanstack/solid-start': 2287 + optional: true 2273 2288 2274 2289 '@tanstack/start-storage-context@1.166.31': 2275 2290 resolution: {integrity: sha512-HwwPixGNenX1mXJwjJBgWHdxuDj9JHclcbYGeJ130oK2gcyo4RX7AdVsGKV9BCdjv81nODyPYHA9GLzxkp6xfg==} ··· 7432 7447 seroval: 1.5.2 7433 7448 transitivePeerDependencies: 7434 7449 - crossws 7450 + 7451 + '@tanstack/start-static-server-functions@1.166.36(@tanstack/react-start@1.167.50(@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(crossws@0.4.5(srvx@0.11.15))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': 7452 + dependencies: 7453 + '@tanstack/start-client-core': 1.167.20 7454 + seroval: 1.5.2 7455 + optionalDependencies: 7456 + '@tanstack/react-start': 1.167.50(@vitejs/plugin-rsc@0.5.25(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@voidzero-dev/vite-plus-core@0.1.19(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(typescript@6.0.3)(yaml@2.8.3))(crossws@0.4.5(srvx@0.11.15))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) 7435 7457 7436 7458 '@tanstack/start-storage-context@1.166.31': 7437 7459 dependencies:
+3
src/articles/article.functions.tsx
··· 1 1 import { createServerFn } from "@tanstack/react-start"; 2 2 import { queryOptions } from "@tanstack/react-query"; 3 + import { staticFunctionMiddleware } from "@tanstack/start-static-server-functions"; 3 4 import { renderServerComponent } from "@tanstack/react-start/rsc"; 4 5 import * as v from "valibot"; 5 6 ··· 18 19 }; 19 20 20 21 const getServerArticle = createServerFn({ method: "GET" }) 22 + .middleware([staticFunctionMiddleware]) 21 23 .inputValidator(v.object({ title: v.string(), slug: v.string() })) 22 24 .handler(async ({ data }) => { 23 25 const markdown = await (articlesContent[data.slug]?.() ?? ··· 34 36 queryOptions({ 35 37 queryKey: ["article", { title, slug }], 36 38 structuralSharing: false, 39 + staleTime: Infinity, 37 40 queryFn: () => getServerArticle({ data: { title, slug } }), 38 41 });
+6
src/router.tsx
··· 2 2 3 3 import { QueryClient } from "@tanstack/react-query"; 4 4 import { routerWithQueryClient } from "@tanstack/react-router-with-query"; 5 + import { setupRouterSsrQueryIntegration } from "@tanstack/react-router-ssr-query"; 5 6 6 7 // Import the generated route tree 7 8 import { routeTree } from "./routeTree.gen.ts"; ··· 73 74 }), 74 75 queryClient, 75 76 ); 77 + 78 + setupRouterSsrQueryIntegration({ 79 + router, 80 + queryClient, 81 + }); 76 82 77 83 return router; 78 84 }