Skip to content

Commit c95112d

Browse files
Merge pull request #1439 from ItsEeleeya/rive-dpr
Use devicePixelRatio for rive in app
2 parents 14702a2 + 14002da commit c95112d

File tree

5 files changed

+224
-247
lines changed

5 files changed

+224
-247
lines changed

apps/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"@intercom/messenger-js-sdk": "^0.0.14",
2020
"@kobalte/core": "^0.13.7",
2121
"@radix-ui/colors": "^3.0.0",
22-
"@rive-app/canvas": "^2.26.7",
22+
"@rive-app/canvas": "^2.32.2",
2323
"@solid-primitives/bounds": "^0.0.122",
2424
"@solid-primitives/broadcast-channel": "^0.1.1",
2525
"@solid-primitives/context": "^0.2.3",

apps/desktop/src/routes/(window-chrome)/settings/license.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { createRive } from "@aerofoil/rive-solid-canvas";
21
import { Button } from "@cap/ui-solid";
32
import type { licenseContract } from "@cap/web-api-contract";
43
import { createMutation, useQueryClient } from "@tanstack/solid-query";
@@ -13,6 +12,7 @@ import {
1312
} from "solid-js";
1413
import { generalSettingsStore } from "~/store";
1514
import { createLicenseQuery } from "~/utils/queries";
15+
import { createRive } from "~/utils/rive";
1616
import { commands } from "~/utils/tauri";
1717
import { licenseApiClient } from "~/utils/web-api";
1818
import PricingRive from "../../../assets/rive/pricing.riv";

apps/desktop/src/routes/(window-chrome)/upgrade.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { createRive } from "@aerofoil/rive-solid-canvas";
21
import { Button } from "@cap/ui-solid";
32
import { createMutation, useQueryClient } from "@tanstack/solid-query";
43
import { getCurrentWindow, Window } from "@tauri-apps/api/window";
54
import { type Accessor, createSignal, Show } from "solid-js";
65
import { generalSettingsStore } from "~/store";
76
import { getProPlanId } from "~/utils/plans";
87
import { createLicenseQuery } from "~/utils/queries";
8+
import { createRive } from "~/utils/rive";
99
import { commands } from "~/utils/tauri";
1010
import { apiClient, licenseApiClient, protectedHeaders } from "~/utils/web-api";
1111
import PricingRive from "../../assets/rive/pricing.riv";

apps/desktop/src/utils/rive.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { createRive as riveSolidCanvas_createRive } from "@aerofoil/rive-solid-canvas";
2+
import type { Rive as InternalRive, RiveParameters } from "@rive-app/canvas";
3+
import { type Accessor, createEffect, type JSX } from "solid-js";
4+
5+
export function createRive(
6+
riveParameters: Accessor<Omit<RiveParameters, "canvas">>,
7+
): {
8+
canvas: () => Accessor<HTMLCanvasElement | undefined>;
9+
rive: Accessor<InternalRive | undefined>;
10+
RiveComponent: (
11+
props: JSX.CanvasHTMLAttributes<HTMLCanvasElement>,
12+
) => JSX.Element;
13+
} {
14+
const { canvas, rive, RiveComponent } =
15+
riveSolidCanvas_createRive(riveParameters);
16+
17+
createEffect(() => rive()?.resizeDrawingSurfaceToCanvas());
18+
19+
return { canvas, rive, RiveComponent };
20+
}

0 commit comments

Comments
 (0)