Skip to content

Commit a3bebbd

Browse files
fix orpc templates (#302)
1 parent a8ef5e8 commit a3bebbd

File tree

14 files changed

+111
-155
lines changed

14 files changed

+111
-155
lines changed

apps/cli/src/constants.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ export const dependencyVersionMap = {
100100
"convex-svelte": "^0.0.11",
101101

102102
"@tanstack/svelte-query": "^5.74.4",
103-
"@tanstack/react-query-devtools": "^5.69.0",
104-
"@tanstack/react-query": "^5.69.0",
103+
"@tanstack/react-query-devtools": "^5.80.5",
104+
"@tanstack/react-query": "^5.80.5",
105105

106106
"@tanstack/solid-query": "^5.75.0",
107107
"@tanstack/solid-query-devtools": "^5.75.0",

apps/cli/templates/api/orpc/native/utils/orpc.ts.hbs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
import { createORPCClient } from "@orpc/client";
22
import { RPCLink } from "@orpc/client/fetch";
33
import { createTanstackQueryUtils } from "@orpc/tanstack-query";
4-
import type { RouterUtils } from "@orpc/tanstack-query";
54
import type { RouterClient } from "@orpc/server";
65
import { QueryCache, QueryClient } from "@tanstack/react-query";
7-
import { createContext, useContext } from "react";
86
import type { appRouter } from "../../server/src/routers";
97
{{#if auth}}
108
import { authClient } from "@/lib/auth-client";
119
{{/if}}
1210

13-
type ORPCReactUtils = RouterUtils<RouterClient<typeof appRouter>>;
14-
1511
export const queryClient = new QueryClient({
1612
queryCache: new QueryCache({
1713
onError: (error) => {
@@ -37,13 +33,3 @@ export const link = new RPCLink({
3733
export const client: RouterClient<typeof appRouter> = createORPCClient(link);
3834

3935
export const orpc = createTanstackQueryUtils(client);
40-
41-
export const ORPCContext = createContext<ORPCReactUtils | undefined>(undefined);
42-
43-
export function useORPC(): ORPCReactUtils {
44-
const orpc = useContext(ORPCContext);
45-
if (!orpc) {
46-
throw new Error("ORPCContext is not set up properly");
47-
}
48-
return orpc;
49-
}

apps/cli/templates/api/orpc/server/base/src/lib/orpc.ts.hbs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ const requireAuth = o.middleware(async ({ context, next }) => {
1212
}
1313
return next({
1414
context: {
15-
...context,
1615
session: context.session,
1716
},
1817
});

apps/cli/templates/api/orpc/web/react/base/src/utils/orpc.ts.hbs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ import { QueryCache, QueryClient } from "@tanstack/react-query";
55
import { toast } from "sonner";
66
import type { appRouter } from "../../../server/src/routers/index";
77
import type { RouterClient } from "@orpc/server";
8-
import { createContext, use } from 'react'
9-
import type { RouterUtils } from '@orpc/tanstack-query'
10-
11-
type ORPCReactUtils = RouterUtils<RouterClient<typeof appRouter>>
128

139
export const queryClient = new QueryClient({
1410
queryCache: new QueryCache({
@@ -44,14 +40,3 @@ export const link = new RPCLink({
4440
export const client: RouterClient<typeof appRouter> = createORPCClient(link)
4541

4642
export const orpc = createTanstackQueryUtils(client)
47-
48-
49-
export const ORPCContext = createContext<ORPCReactUtils | undefined>(undefined)
50-
51-
export function useORPC(): ORPCReactUtils {
52-
const orpc = use(ORPCContext)
53-
if (!orpc) {
54-
throw new Error('ORPCContext is not set up properly')
55-
}
56-
return orpc
57-
}

apps/cli/templates/auth/web/react/tanstack-start/src/routes/dashboard.tsx.hbs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { authClient } from "@/lib/auth-client";
33
import { useTRPC } from "@/utils/trpc";
44
{{/if}}
55
{{#if (eq api "orpc")}}
6-
import { useORPC } from "@/utils/orpc";
6+
import { orpc } from "@/utils/orpc";
77
{{/if}}
88
import { useQuery } from "@tanstack/react-query";
99
import { createFileRoute } from "@tanstack/react-router";
@@ -19,7 +19,6 @@ function RouteComponent() {
1919
const trpc = useTRPC();
2020
{{/if}}
2121
{{#if (eq api "orpc")}}
22-
const orpc = useORPC();
2322
{{/if}}
2423
const { data: session, isPending } = authClient.useSession();
2524

apps/cli/templates/examples/todo/web/react/tanstack-start/src/routes/todos.tsx.hbs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ import { useMutation } from "convex/react";
1919
import { api } from "@{{projectName}}/backend/convex/_generated/api";
2020
import type { Id } from "@{{projectName}}/backend/convex/_generated/dataModel";
2121
{{else}}
22-
{{#if (eq api "trpc")}}
22+
{{#if (eq api "trpc")}}
2323
import { useTRPC } from "@/utils/trpc";
24-
{{/if}}
25-
{{#if (eq api "orpc")}}
26-
import { useORPC } from "@/utils/orpc";
27-
{{/if}}
24+
{{/if}}
25+
{{#if (eq api "orpc")}}
26+
import { orpc } from "@/utils/orpc";
27+
{{/if}}
2828
import { useMutation, useQuery } from "@tanstack/react-query";
2929
{{/if}}
3030

@@ -77,7 +77,6 @@ function TodosRoute() {
7777
const trpc = useTRPC();
7878
{{/if}}
7979
{{#if (eq api "orpc")}}
80-
const orpc = useORPC();
8180
{{/if}}
8281

8382
{{#if (eq api "trpc")}}

apps/cli/templates/frontend/react/next/src/components/providers.tsx.hbs

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,54 @@
11
"use client";
22

33
{{#if (eq backend "convex")}}
4-
import { ConvexProvider, ConvexReactClient } from "convex/react";
4+
import { ConvexProvider, ConvexReactClient } from "convex/react";
55
{{else}}
6-
{{#unless (eq api "none")}}
7-
import { QueryClientProvider } from "@tanstack/react-query";
8-
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
9-
{{#if (eq api "orpc")}}
10-
import { orpc, ORPCContext, queryClient } from "@/utils/orpc";
11-
{{/if}}
12-
{{#if (eq api "trpc")}}
13-
import { queryClient } from "@/utils/trpc";
14-
{{/if}}
15-
{{/unless}}
6+
{{#unless (eq api "none")}}
7+
import { QueryClientProvider } from "@tanstack/react-query";
8+
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
9+
{{#if (eq api "orpc")}}
10+
import { queryClient } from "@/utils/orpc";
11+
{{/if}}
12+
{{#if (eq api "trpc")}}
13+
import { queryClient } from "@/utils/trpc";
14+
{{/if}}
15+
{{/unless}}
1616
{{/if}}
17-
1817
import { ThemeProvider } from "./theme-provider";
1918
import { Toaster } from "./ui/sonner";
2019

2120
{{#if (eq backend "convex")}}
22-
const convex = new ConvexReactClient(process.env.NEXT_PUBLIC_CONVEX_URL!);
21+
const convex = new ConvexReactClient(process.env.NEXT_PUBLIC_CONVEX_URL!);
2322
{{/if}}
2423

25-
export default function Providers({ children }: { children: React.ReactNode }) { return (
24+
export default function Providers({
25+
children
26+
}: {
27+
children: React.ReactNode
28+
}) {
29+
return (
2630
<ThemeProvider
2731
attribute="class"
2832
defaultTheme="system"
2933
enableSystem
3034
disableTransitionOnChange
3135
>
3236
{{#if (eq backend "convex")}}
33-
<ConvexProvider client={convex}>{children}</ConvexProvider>
37+
<ConvexProvider client={convex}>{children}</ConvexProvider>
38+
{{else}}
39+
{{#unless (eq api "none")}}
40+
<QueryClientProvider client={queryClient}>
41+
{{#if (eq api "orpc")}}
42+
{children}
43+
{{/if}}
44+
{{#if (eq api "trpc")}}
45+
{children}
46+
{{/if}}
47+
<ReactQueryDevtools />
48+
</QueryClientProvider>
3449
{{else}}
35-
{{#unless (eq api "none")}}
36-
<QueryClientProvider client={queryClient}>
37-
{{#if (eq api "orpc")}}
38-
<ORPCContext.Provider value={orpc}>
39-
{children}
40-
</ORPCContext.Provider>
41-
{{/if}}
42-
{{#if (eq api "trpc")}}
43-
{children}
44-
{{/if}}
45-
<ReactQueryDevtools />
46-
</QueryClientProvider>
47-
{{else}}
48-
{children}
49-
{{/unless}}
50+
{children}
51+
{{/unless}}
5052
{{/if}}
5153
<Toaster richColors />
5254
</ThemeProvider>

apps/cli/templates/frontend/react/react-router/src/root.tsx.hbs

Lines changed: 54 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ import { ThemeProvider } from "./components/theme-provider";
1313
import { Toaster } from "./components/ui/sonner";
1414

1515
{{#if (eq backend "convex")}}
16-
import { ConvexProvider, ConvexReactClient } from "convex/react";
16+
import { ConvexProvider, ConvexReactClient } from "convex/react";
1717
{{else}}
18-
{{#unless (eq api "none")}}
19-
import { QueryClientProvider } from "@tanstack/react-query";
20-
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
21-
{{#if (eq api "orpc")}}
22-
import { orpc, ORPCContext, queryClient } from "./utils/orpc";
23-
{{/if}}
24-
{{#if (eq api "trpc")}}
25-
import { queryClient } from "./utils/trpc";
26-
{{/if}}
27-
{{/unless}}
18+
{{#unless (eq api "none")}}
19+
import { QueryClientProvider } from "@tanstack/react-query";
20+
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
21+
{{#if (eq api "orpc")}}
22+
import { queryClient } from "./utils/orpc";
23+
{{/if}}
24+
{{#if (eq api "trpc")}}
25+
import { queryClient } from "./utils/trpc";
26+
{{/if}}
27+
{{/unless}}
2828
{{/if}}
2929

3030
export const links: Route.LinksFunction = () => [
@@ -62,66 +62,64 @@ export function Layout({ children }: { children: React.ReactNode }) {
6262
}
6363

6464
{{#if (eq backend "convex")}}
65-
export default function App() {
66-
const convex = new ConvexReactClient(
67-
import.meta.env.VITE_CONVEX_URL as string,
68-
);
69-
return (
70-
<ConvexProvider client={convex}>
71-
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
72-
<div className="grid grid-rows-[auto_1fr] h-svh">
73-
<Header />
74-
<Outlet />
75-
</div>
76-
<Toaster richColors />
77-
</ThemeProvider>
78-
</ConvexProvider>
79-
);
80-
}
65+
export default function App() {
66+
const convex = new ConvexReactClient(
67+
import.meta.env.VITE_CONVEX_URL as string,
68+
);
69+
return (
70+
<ConvexProvider client={convex}>
71+
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
72+
<div className="grid grid-rows-[auto_1fr] h-svh">
73+
<Header />
74+
<Outlet />
75+
</div>
76+
<Toaster richColors />
77+
</ThemeProvider>
78+
</ConvexProvider>
79+
);
80+
}
8181
{{else if (eq api "orpc")}}
82-
export default function App() {
83-
return (
84-
<QueryClientProvider client={queryClient}>
85-
<ORPCContext.Provider value={orpc}>
86-
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
87-
<div className="grid grid-rows-[auto_1fr] h-svh">
88-
<Header />
89-
<Outlet />
90-
</div>
91-
<Toaster richColors />
92-
</ThemeProvider>
93-
</ORPCContext.Provider>
94-
<ReactQueryDevtools position="bottom" buttonPosition="bottom-right" />
95-
</QueryClientProvider>
96-
);
97-
}
98-
{{else if (eq api "trpc")}}
99-
export default function App() {
100-
return (
101-
<QueryClientProvider client={queryClient}>
82+
export default function App() {
83+
return (
84+
<QueryClientProvider client={queryClient}>
10285
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
10386
<div className="grid grid-rows-[auto_1fr] h-svh">
10487
<Header />
10588
<Outlet />
10689
</div>
10790
<Toaster richColors />
10891
</ThemeProvider>
109-
<ReactQueryDevtools position="bottom" buttonPosition="bottom-right" />
110-
</QueryClientProvider>
111-
);
112-
}
113-
{{else}}
114-
export default function App() {
115-
return (
92+
<ReactQueryDevtools position="bottom" buttonPosition="bottom-right" />
93+
</QueryClientProvider>
94+
);
95+
}
96+
{{else if (eq api "trpc")}}
97+
export default function App() {
98+
return (
99+
<QueryClientProvider client={queryClient}>
116100
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
117101
<div className="grid grid-rows-[auto_1fr] h-svh">
118102
<Header />
119103
<Outlet />
120104
</div>
121105
<Toaster richColors />
122106
</ThemeProvider>
123-
);
124-
}
107+
<ReactQueryDevtools position="bottom" buttonPosition="bottom-right" />
108+
</QueryClientProvider>
109+
);
110+
}
111+
{{else}}
112+
export default function App() {
113+
return (
114+
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
115+
<div className="grid grid-rows-[auto_1fr] h-svh">
116+
<Header />
117+
<Outlet />
118+
</div>
119+
<Toaster richColors />
120+
</ThemeProvider>
121+
);
122+
}
125123
{{/if}}
126124

127125
export function ErrorBoundary({ error }: Route.ErrorBoundaryProps) {

apps/cli/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,13 @@ function RootComponent() {
7575
<>
7676
<HeadContent />
7777
{{#if (eq api "orpc")}}
78-
<ORPCContext.Provider value={orpcUtils}>
7978
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
8079
<div className="grid grid-rows-[auto_1fr] h-svh">
8180
<Header />
8281
{isFetching ? <Loader /> : <Outlet />}
8382
</div>
8483
<Toaster richColors />
8584
</ThemeProvider>
86-
</ORPCContext.Provider>
8785
{{else}}
8886
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
8987
<div className="grid grid-rows-[auto_1fr] h-svh">

0 commit comments

Comments
 (0)