From 083c57d0ca6b8c2732a33edfb3b56a3bf3701895 Mon Sep 17 00:00:00 2001
From: Michael Zetterberg
Date: Tue, 26 Mar 2024 13:02:26 +0100
Subject: [PATCH] chore: add and run prettier
---
package-lock.json | 26 ++++-
package.json | 1 +
remix/.eslintrc.cjs | 58 +++++-----
remix/.prettierignore | 11 ++
remix/app/components/ConfigForm.tsx | 30 +++---
remix/app/components/Disclaimer.tsx | 2 +-
remix/app/components/FullSizeImage.tsx | 14 +--
remix/app/components/ImageEditModal.tsx | 46 ++++----
remix/app/components/ImageVaultDAM.tsx | 112 ++++++++++----------
remix/app/components/InvalidConfig.tsx | 2 +-
remix/app/entry.client.tsx | 10 +-
remix/app/entry.server.tsx | 12 +--
remix/app/hooks/useApp.ts | 40 +++----
remix/app/root.tsx | 16 +--
remix/app/routes/_index.tsx | 14 +--
remix/app/routes/config.tsx | 18 ++--
remix/app/routes/field.tsx | 50 ++++-----
remix/prettier.config.cjs | 8 ++
remix/vite.config.ts | 8 +-
rte/.prettierignore | 7 ++
rte/components/EmbedBtn.tsx | 20 ++--
rte/components/ImageEditModal.tsx | 78 +++++++-------
rte/components/ImageElement.tsx | 58 +++++-----
rte/env.d.ts | 2 +-
rte/main.tsx | 134 ++++++++++++------------
rte/prettier.config.cjs | 8 ++
rte/vite.config.ts | 24 ++---
27 files changed, 430 insertions(+), 379 deletions(-)
create mode 100644 remix/.prettierignore
create mode 100644 remix/prettier.config.cjs
create mode 100644 rte/.prettierignore
create mode 100644 rte/prettier.config.cjs
diff --git a/package-lock.json b/package-lock.json
index 284851e..03656b4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -29,6 +29,7 @@
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
+ "prettier": "^3.2.5",
"typescript": "^5.1.6",
"vite": "^5.1.0",
"vite-tsconfig-paths": "^4.2.1"
@@ -2619,6 +2620,21 @@
"node": ">=6"
}
},
+ "node_modules/@remix-run/dev/node_modules/prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
"node_modules/@remix-run/dev/node_modules/tsconfig-paths": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
@@ -11013,15 +11029,15 @@
}
},
"node_modules/prettier": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
- "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+ "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
"dev": true,
"bin": {
- "prettier": "bin-prettier.js"
+ "prettier": "bin/prettier.cjs"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
diff --git a/package.json b/package.json
index 32adb5a..273b658 100644
--- a/package.json
+++ b/package.json
@@ -33,6 +33,7 @@
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
+ "prettier": "^3.2.5",
"typescript": "^5.1.6",
"vite": "^5.1.0",
"vite-tsconfig-paths": "^4.2.1"
diff --git a/remix/.eslintrc.cjs b/remix/.eslintrc.cjs
index c84b96d..a13e50b 100644
--- a/remix/.eslintrc.cjs
+++ b/remix/.eslintrc.cjs
@@ -8,8 +8,8 @@
module.exports = {
root: true,
parserOptions: {
- ecmaVersion: 'latest',
- sourceType: 'module',
+ ecmaVersion: "latest",
+ sourceType: "module",
ecmaFeatures: {
jsx: true,
},
@@ -19,38 +19,38 @@ module.exports = {
commonjs: true,
es6: true,
},
- ignorePatterns: ['build/**/*', 'node_modules/**/*', 'public/**/*'],
+ ignorePatterns: ["build/**/*", "node_modules/**/*", "public/**/*"],
// Base config
- extends: ['eslint:recommended'],
+ extends: ["eslint:recommended"],
overrides: [
// React
{
- files: ['**/*.{js,jsx,ts,tsx}'],
- plugins: ['react', 'jsx-a11y'],
+ files: ["**/*.{js,jsx,ts,tsx}"],
+ plugins: ["react", "jsx-a11y"],
rules: {
- 'react/jsx-uses-vars': 'error',
- 'react/jsx-uses-react': 'error',
+ "react/jsx-uses-vars": "error",
+ "react/jsx-uses-react": "error",
},
extends: [
- 'plugin:react/recommended',
- 'plugin:react/jsx-runtime',
- 'plugin:react-hooks/recommended',
- 'plugin:jsx-a11y/recommended',
+ "plugin:react/recommended",
+ "plugin:react/jsx-runtime",
+ "plugin:react-hooks/recommended",
+ "plugin:jsx-a11y/recommended",
],
settings: {
react: {
- version: 'detect',
+ version: "detect",
},
- formComponents: ['Form'],
+ formComponents: ["Form"],
linkComponents: [
- { name: 'Link', linkAttribute: 'to' },
- { name: 'NavLink', linkAttribute: 'to' },
+ { name: "Link", linkAttribute: "to" },
+ { name: "NavLink", linkAttribute: "to" },
],
- 'import/resolver': {
+ "import/resolver": {
typescript: {
- project: './remix/tsconfig.json',
+ project: "./remix/tsconfig.json",
},
},
},
@@ -58,14 +58,14 @@ module.exports = {
// Typescript
{
- files: ['**/*.{ts,tsx}'],
- plugins: ['@typescript-eslint', 'import'],
- parser: '@typescript-eslint/parser',
+ files: ["**/*.{ts,tsx}"],
+ plugins: ["@typescript-eslint", "import"],
+ parser: "@typescript-eslint/parser",
settings: {
- 'import/internal-regex': '^~/',
- 'import/resolver': {
+ "import/internal-regex": "^~/",
+ "import/resolver": {
node: {
- extensions: ['.ts', '.tsx'],
+ extensions: [".ts", ".tsx"],
},
typescript: {
alwaysTryTypes: true,
@@ -73,18 +73,18 @@ module.exports = {
},
},
extends: [
- 'plugin:@typescript-eslint/recommended',
- 'plugin:import/recommended',
- 'plugin:import/typescript',
+ "plugin:@typescript-eslint/recommended",
+ "plugin:import/recommended",
+ "plugin:import/typescript",
],
},
// Node
{
- files: ['.eslintrc.cjs'],
+ files: [".eslintrc.cjs"],
env: {
node: true,
},
},
],
-};
+}
diff --git a/remix/.prettierignore b/remix/.prettierignore
new file mode 100644
index 0000000..00d3c64
--- /dev/null
+++ b/remix/.prettierignore
@@ -0,0 +1,11 @@
+# Directories
+build
+public
+
+# Files
+.eslintrc.cjs
+.prettierignore
+package.json
+package-lock.json
+prettier.config.cjs
+tsconfig.json
diff --git a/remix/app/components/ConfigForm.tsx b/remix/app/components/ConfigForm.tsx
index 02c9a28..fa81f15 100644
--- a/remix/app/components/ConfigForm.tsx
+++ b/remix/app/components/ConfigForm.tsx
@@ -4,22 +4,22 @@ import {
Help,
Line,
TextInput,
-} from "@contentstack/venus-components";
-import { ChangeEvent, useState } from "react";
-import { ImageVaultDAMConfig } from "~/utils/imagevault";
+} from "@contentstack/venus-components"
+import { ChangeEvent, useState } from "react"
+import { ImageVaultDAMConfig } from "~/utils/imagevault"
-import type { IInstallationData } from "@contentstack/app-sdk/dist/src/types";
+import type { IInstallationData } from "@contentstack/app-sdk/dist/src/types"
export type ConfigFormProps = {
- values: Partial;
- setInstallationData: (data: IInstallationData) => void;
-};
+ values: Partial
+ setInstallationData: (data: IInstallationData) => void
+}
export default function ConfigForm({
values,
setInstallationData,
}: ConfigFormProps) {
- const [finalValues, setFinalValues] = useState(values);
+ const [finalValues, setFinalValues] = useState(values)
return (
@@ -37,7 +37,7 @@ export default function ConfigForm({
setFinalValues((prev) => ({
...prev,
baseUrl: evt.target.value,
- }));
+ }))
setInstallationData({
configuration: {
@@ -45,7 +45,7 @@ export default function ConfigForm({
baseUrl: evt.target.value,
},
serverConfiguration: {},
- });
+ })
}}
required={true}
willBlurOnEsc={true}
@@ -76,7 +76,7 @@ export default function ConfigForm({
setFinalValues((prev) => ({
...prev,
formatId: evt.target.value,
- }));
+ }))
setInstallationData({
configuration: {
@@ -84,7 +84,7 @@ export default function ConfigForm({
formatId: evt.target.value,
},
serverConfiguration: {},
- });
+ })
}}
/>
@@ -109,7 +109,7 @@ export default function ConfigForm({
setFinalValues((prev) => ({
...prev,
imageVaultUrl: evt.target.value,
- }));
+ }))
setInstallationData({
configuration: {
@@ -117,10 +117,10 @@ export default function ConfigForm({
imageVaultUrl: evt.target.value,
},
serverConfiguration: {},
- });
+ })
}}
/>
- );
+ )
}
diff --git a/remix/app/components/Disclaimer.tsx b/remix/app/components/Disclaimer.tsx
index d611d8a..622a04f 100644
--- a/remix/app/components/Disclaimer.tsx
+++ b/remix/app/components/Disclaimer.tsx
@@ -8,5 +8,5 @@ export default function Disclaimer() {
save the entry at least once with a title before choosing an image.
- );
+ )
}
diff --git a/remix/app/components/FullSizeImage.tsx b/remix/app/components/FullSizeImage.tsx
index c3d1c56..6b3e8b3 100644
--- a/remix/app/components/FullSizeImage.tsx
+++ b/remix/app/components/FullSizeImage.tsx
@@ -1,4 +1,4 @@
-import { ModalBody, ModalHeader } from "@contentstack/venus-components";
+import { ModalBody, ModalHeader } from "@contentstack/venus-components"
export default function FullSizeImage({
title,
@@ -7,11 +7,11 @@ export default function FullSizeImage({
alt,
aspectRatio,
}: {
- title: string;
- onClose: () => void;
- imageUrl: string;
- alt: string;
- aspectRatio: number;
+ title: string
+ onClose: () => void
+ imageUrl: string
+ alt: string
+ aspectRatio: number
}) {
return (
<>
@@ -37,5 +37,5 @@ export default function FullSizeImage({
/>
>
- );
+ )
}
diff --git a/remix/app/components/ImageEditModal.tsx b/remix/app/components/ImageEditModal.tsx
index 18addea..bc89912 100644
--- a/remix/app/components/ImageEditModal.tsx
+++ b/remix/app/components/ImageEditModal.tsx
@@ -1,4 +1,4 @@
-import { useState, useEffect, ChangeEvent } from "react";
+import { useState, useEffect, ChangeEvent } from "react"
import {
ModalFooter,
ModalBody,
@@ -8,59 +8,59 @@ import {
Field as FieldComponent,
FieldLabel,
TextInput,
-} from "@contentstack/venus-components";
+} from "@contentstack/venus-components"
-import type { InsertResponse } from "~/types/imagevault";
+import type { InsertResponse } from "~/types/imagevault"
type ImageEditModalProps = {
- fieldData: InsertResponse;
- setData: (data: InsertResponse) => void;
- closeModal: () => void;
-};
+ fieldData: InsertResponse
+ setData: (data: InsertResponse) => void
+ closeModal: () => void
+}
export default function ImageEditModal({
fieldData,
closeModal,
setData,
}: ImageEditModalProps) {
- const [altText, setAltText] = useState("");
- const [caption, setCaption] = useState("");
+ const [altText, setAltText] = useState("")
+ const [caption, setCaption] = useState("")
- const assetUrl = fieldData.MediaConversions[0].Url;
+ const assetUrl = fieldData.MediaConversions[0].Url
useEffect(() => {
if (fieldData.Metadata && fieldData.Metadata.length) {
const altText = fieldData.Metadata.find((meta) =>
meta.Name.includes("AltText_")
- )?.Value;
+ )?.Value
const caption = fieldData.Metadata.find((meta) =>
meta.Name.includes("Title_")
- )?.Value;
+ )?.Value
- setAltText(altText ?? "");
- setCaption(caption ?? "");
+ setAltText(altText ?? "")
+ setCaption(caption ?? "")
}
- }, [fieldData.Metadata]);
+ }, [fieldData.Metadata])
function handleSave() {
- const metaData = fieldData.Metadata ?? [];
+ const metaData = fieldData.Metadata ?? []
const newMetadata = metaData.map((meta) => {
if (meta.Name.includes("AltText_")) {
- return { ...meta, Value: altText };
+ return { ...meta, Value: altText }
}
if (meta.Name.includes("Title_")) {
- return { ...meta, Value: caption };
+ return { ...meta, Value: caption }
}
- return meta;
- });
+ return meta
+ })
setData({
...fieldData,
Metadata: newMetadata,
- });
- closeModal();
+ })
+ closeModal()
}
return (
@@ -120,5 +120,5 @@ export default function ImageEditModal({
>
- );
+ )
}
diff --git a/remix/app/components/ImageVaultDAM.tsx b/remix/app/components/ImageVaultDAM.tsx
index b1aede2..c7d90f3 100644
--- a/remix/app/components/ImageVaultDAM.tsx
+++ b/remix/app/components/ImageVaultDAM.tsx
@@ -1,34 +1,34 @@
-import { useCallback, useEffect, useState } from "react";
-import { flushSync } from "react-dom";
+import { useCallback, useEffect, useState } from "react"
+import { flushSync } from "react-dom"
import {
AssetCardVertical,
Button,
FieldLabel,
cbModal,
-} from "@contentstack/venus-components";
-import ImageEditModal from "./ImageEditModal";
-import FullSizeImage from "./FullSizeImage";
-import { isInsertResponse, openImageVault } from "~/utils/imagevault";
+} from "@contentstack/venus-components"
+import ImageEditModal from "./ImageEditModal"
+import FullSizeImage from "./FullSizeImage"
+import { isInsertResponse, openImageVault } from "~/utils/imagevault"
-import type { CbModalProps } from "@contentstack/venus-components/build/components/Modal/Modal";
-import type UiLocation from "@contentstack/app-sdk/dist/src/uiLocation";
-import type { InsertResponse } from "~/types/imagevault";
+import type { CbModalProps } from "@contentstack/venus-components/build/components/Modal/Modal"
+import type UiLocation from "@contentstack/app-sdk/dist/src/uiLocation"
+import type { InsertResponse } from "~/types/imagevault"
import type {
EntryDataPublishDetails,
ImageVaultDAMConfig,
-} from "~/utils/imagevault";
-import type { Lang } from "~/types/lang";
+} from "~/utils/imagevault"
+import type { Lang } from "~/types/lang"
export type ImageVaultDAMProps = {
- sdk: UiLocation;
- config: ImageVaultDAMConfig;
- initialData: InsertResponse | null;
-};
+ sdk: UiLocation
+ config: ImageVaultDAMConfig
+ initialData: InsertResponse | null
+}
type DAMButtonProps = {
- onClick: () => void;
-};
+ onClick: () => void
+}
function DAMButton({ onClick }: DAMButtonProps) {
return (
@@ -45,27 +45,27 @@ function DAMButton({ onClick }: DAMButtonProps) {
Choose a file
- );
+ )
}
type MediaProps = {
- media: InsertResponse;
- onDelete: () => void;
- onEdit: () => void;
-};
+ media: InsertResponse
+ onDelete: () => void
+ onEdit: () => void
+}
function Media({ media, onDelete, onEdit }: MediaProps) {
// MediaConversions is an array but will only contain one object
const { Url, Height, FormatHeight, Width, FormatWidth, Name, AspectRatio } =
- media.MediaConversions[0];
+ media.MediaConversions[0]
- const assetUrl = Url;
- const title = media.Name;
- const width = FormatWidth || Width;
- const height = FormatHeight || Height;
+ const assetUrl = Url
+ const title = media.Name
+ const width = FormatWidth || Width
+ const height = FormatHeight || Height
const alt =
media.Metadata?.find((meta) => meta.Name.includes("AltText_"))?.Value ||
- Name;
+ Name
return (
@@ -91,7 +91,7 @@ function Media({ media, onDelete, onEdit }: MediaProps) {
title={Name}
aspectRatio={AspectRatio}
/>
- );
+ )
},
modalProps: {
size: "max",
@@ -106,12 +106,12 @@ function Media({ media, onDelete, onEdit }: MediaProps) {
overlay: {},
},
},
- };
- cbModal(cbModalProps);
+ }
+ cbModal(cbModalProps)
}}
/>
- );
+ )
}
export default function ImageVaultDAM({
@@ -119,42 +119,42 @@ export default function ImageVaultDAM({
config,
initialData,
}: ImageVaultDAMProps) {
- const [media, setMedia] = useState(initialData);
+ const [media, setMedia] = useState(initialData)
- const field = sdk.location.CustomField?.field;
- const frame = sdk.location.CustomField?.frame;
- const entry = sdk.location.CustomField?.entry;
- const stack = sdk.location.CustomField?.stack;
+ const field = sdk.location.CustomField?.field
+ const frame = sdk.location.CustomField?.frame
+ const entry = sdk.location.CustomField?.entry
+ const stack = sdk.location.CustomField?.stack
const updateFrameHeight = useCallback(() => {
if (frame?.updateHeight) {
// We need to recalculate the height of the iframe when an image is added.
// Cannot use flushSync inside useEffect.
- setTimeout(() => frame.updateHeight(document.body.scrollHeight), 0);
+ setTimeout(() => frame.updateHeight(document.body.scrollHeight), 0)
}
- }, [frame]);
+ }, [frame])
const handleMedia = useCallback(
(result?: InsertResponse) => {
if (field && result) {
flushSync(() => {
- setMedia(result);
- field.setData(result);
- document.body.style.overflow = "hidden";
- });
+ setMedia(result)
+ field.setData(result)
+ document.body.style.overflow = "hidden"
+ })
}
- updateFrameHeight();
+ updateFrameHeight()
},
[field, updateFrameHeight]
- );
+ )
useEffect(() => {
- updateFrameHeight();
- }, [updateFrameHeight]);
+ updateFrameHeight()
+ }, [updateFrameHeight])
const handleEdit = useCallback(() => {
- const fieldData = field?.getData() as InsertResponse;
+ const fieldData = field?.getData() as InsertResponse
if (isInsertResponse(fieldData)) {
cbModal({
// @ts-expect-error: Component is badly typed
@@ -168,12 +168,12 @@ export default function ImageVaultDAM({
modalProps: {
size: "max",
},
- });
+ })
}
- }, [field, handleMedia]);
+ }, [field, handleMedia])
if (!field || !frame || !entry || !stack) {
- return Initializing custom field...
;
+ return Initializing custom field...
}
const entryData: EntryDataPublishDetails = {
@@ -186,7 +186,7 @@ export default function ImageVaultDAM({
entry.getField("title").getData().toString() ||
`Untitled (${entry.content_type.uid})`,
uid: entry._data.uid,
- };
+ }
return (
@@ -200,8 +200,8 @@ export default function ImageVaultDAM({
{
- setMedia(null);
- handleMedia();
+ setMedia(null)
+ handleMedia()
}}
onEdit={handleEdit}
/>
@@ -212,10 +212,10 @@ export default function ImageVaultDAM({
config,
entryData,
onSuccess: handleMedia,
- });
+ })
}}
/>
)}
- );
+ )
}
diff --git a/remix/app/components/InvalidConfig.tsx b/remix/app/components/InvalidConfig.tsx
index 761ca5e..9eb05f7 100644
--- a/remix/app/components/InvalidConfig.tsx
+++ b/remix/app/components/InvalidConfig.tsx
@@ -7,5 +7,5 @@ export default function InvalidConfig() {
to run correctly.
- );
+ )
}
diff --git a/remix/app/entry.client.tsx b/remix/app/entry.client.tsx
index 999c0a1..5d487b2 100644
--- a/remix/app/entry.client.tsx
+++ b/remix/app/entry.client.tsx
@@ -1,6 +1,6 @@
-import { RemixBrowser } from "@remix-run/react";
-import { startTransition, StrictMode } from "react";
-import { hydrateRoot } from "react-dom/client";
+import { RemixBrowser } from "@remix-run/react"
+import { startTransition, StrictMode } from "react"
+import { hydrateRoot } from "react-dom/client"
startTransition(() => {
hydrateRoot(
@@ -8,5 +8,5 @@ startTransition(() => {
- );
-});
+ )
+})
diff --git a/remix/app/entry.server.tsx b/remix/app/entry.server.tsx
index fc66fc8..662ff32 100644
--- a/remix/app/entry.server.tsx
+++ b/remix/app/entry.server.tsx
@@ -1,6 +1,6 @@
-import type { EntryContext } from "@remix-run/node";
-import { RemixServer } from "@remix-run/react";
-import { renderToString } from "react-dom/server";
+import type { EntryContext } from "@remix-run/node"
+import { RemixServer } from "@remix-run/react"
+import { renderToString } from "react-dom/server"
export default function handleRequest(
request: Request,
@@ -10,10 +10,10 @@ export default function handleRequest(
) {
let html = renderToString(
- );
- html = "\n" + html;
+ )
+ html = "\n" + html
return new Response(html, {
headers: { "Content-Type": "text/html" },
status: responseStatusCode,
- });
+ })
}
diff --git a/remix/app/hooks/useApp.ts b/remix/app/hooks/useApp.ts
index 9601299..88f2e34 100644
--- a/remix/app/hooks/useApp.ts
+++ b/remix/app/hooks/useApp.ts
@@ -1,46 +1,46 @@
-import UiLocation from "@contentstack/app-sdk/dist/src/uiLocation";
-import { useEffect, useState } from "react";
+import UiLocation from "@contentstack/app-sdk/dist/src/uiLocation"
+import { useEffect, useState } from "react"
export class SDKLoadingError extends Error {}
export default function useApp() {
- const [, setError] = useState();
- const [sdk, setSdk] = useState();
- const [config, setConfig] = useState>();
+ const [, setError] = useState()
+ const [sdk, setSdk] = useState()
+ const [config, setConfig] = useState>()
useEffect(() => {
async function init() {
try {
const ContentstackAppSDK = (await import("@contentstack/app-sdk"))
- .default;
- const initSdk = await ContentstackAppSDK.init();
- setSdk(initSdk);
+ .default
+ const initSdk = await ContentstackAppSDK.init()
+ setSdk(initSdk)
- const config = await initSdk.getConfig();
- setConfig(config);
+ const config = await initSdk.getConfig()
+ setConfig(config)
- const iframeWrapperRef = document.getElementById("field");
- window.iframeRef = iframeWrapperRef;
- window.postRobot = initSdk.postRobot;
+ const iframeWrapperRef = document.getElementById("field")
+ window.iframeRef = iframeWrapperRef
+ window.postRobot = initSdk.postRobot
} catch (e) {
- let err: Error;
+ let err: Error
if (e instanceof Error) {
- err = new SDKLoadingError(e.message);
+ err = new SDKLoadingError(e.message)
}
// Error boundaries do not support async functions. Workaround:
// https://github.com/vercel/next.js/discussions/50564#discussioncomment-6063866
setError(() => {
- throw err;
- });
+ throw err
+ })
}
}
- init();
- }, [setSdk, setConfig]);
+ init()
+ }, [setSdk, setConfig])
return {
sdk,
config,
- };
+ }
}
diff --git a/remix/app/root.tsx b/remix/app/root.tsx
index 66e5076..13726dd 100644
--- a/remix/app/root.tsx
+++ b/remix/app/root.tsx
@@ -5,8 +5,8 @@ import {
Scripts,
ScrollRestoration,
useRouteError,
-} from '@remix-run/react';
-import { SDKLoadingError } from './hooks/useApp';
+} from "@remix-run/react"
+import { SDKLoadingError } from "./hooks/useApp"
export function Layout({ children }: { children: React.ReactNode }) {
return (
@@ -31,20 +31,20 @@ export function Layout({ children }: { children: React.ReactNode }) {