fix: add posthog error monitor

This commit is contained in:
David Nguyen
2025-02-25 15:14:45 +11:00
parent cedd5e87b1
commit 7e8955b89c
17 changed files with 175 additions and 148 deletions

View File

@ -3,10 +3,12 @@ import { useCallback, useEffect } from 'react';
import { useRevalidator } from 'react-router'; import { useRevalidator } from 'react-router';
export const RefreshOnFocus = () => { export const RefreshOnFocus = () => {
const { revalidate } = useRevalidator(); const { revalidate, state } = useRevalidator();
const onFocus = useCallback(() => { const onFocus = useCallback(() => {
void revalidate(); if (state === 'idle') {
void revalidate();
}
}, [revalidate]); }, [revalidate]);
useEffect(() => { useEffect(() => {

View File

@ -1,21 +1,30 @@
import { StrictMode, startTransition } from 'react'; import { StrictMode, startTransition, useEffect } from 'react';
import { i18n } from '@lingui/core'; import { i18n } from '@lingui/core';
import { detect, fromHtmlTag } from '@lingui/detect-locale'; import { detect, fromHtmlTag } from '@lingui/detect-locale';
import { I18nProvider } from '@lingui/react'; import { I18nProvider } from '@lingui/react';
import posthog from 'posthog-js';
import { hydrateRoot } from 'react-dom/client'; import { hydrateRoot } from 'react-dom/client';
import { HydratedRouter } from 'react-router/dom'; import { HydratedRouter } from 'react-router/dom';
import { Theme, ThemeProvider } from 'remix-themes';
import { match } from 'ts-pattern';
import { extractPostHogConfig } from '@documenso/lib/constants/feature-flags';
import { dynamicActivate } from '@documenso/lib/utils/i18n'; import { dynamicActivate } from '@documenso/lib/utils/i18n';
async function main() { function PosthogInit() {
const theme = match(document.documentElement.getAttribute('data-theme')) const postHogConfig = extractPostHogConfig();
.with('dark', () => Theme.DARK)
.with('light', () => Theme.LIGHT)
.otherwise(() => null);
useEffect(() => {
if (postHogConfig) {
posthog.init(postHogConfig.key, {
api_host: postHogConfig.host,
});
}
}, []);
return null;
}
async function main() {
const locale = detect(fromHtmlTag('lang')) || 'en'; const locale = detect(fromHtmlTag('lang')) || 'en';
await dynamicActivate(locale); await dynamicActivate(locale);
@ -25,10 +34,10 @@ async function main() {
document, document,
<StrictMode> <StrictMode>
<I18nProvider i18n={i18n}> <I18nProvider i18n={i18n}>
<ThemeProvider specifiedTheme={theme} themeAction="/api/theme"> <HydratedRouter />
<HydratedRouter />
</ThemeProvider>
</I18nProvider> </I18nProvider>
<PosthogInit />
</StrictMode>, </StrictMode>,
); );
}); });

View File

@ -7,13 +7,11 @@ import type { RenderToPipeableStreamOptions } from 'react-dom/server';
import { renderToPipeableStream } from 'react-dom/server'; import { renderToPipeableStream } from 'react-dom/server';
import type { AppLoadContext, EntryContext } from 'react-router'; import type { AppLoadContext, EntryContext } from 'react-router';
import { ServerRouter } from 'react-router'; import { ServerRouter } from 'react-router';
import { ThemeProvider } from 'remix-themes';
import { APP_I18N_OPTIONS } from '@documenso/lib/constants/i18n'; import { APP_I18N_OPTIONS } from '@documenso/lib/constants/i18n';
import { dynamicActivate, extractLocaleData } from '@documenso/lib/utils/i18n'; import { dynamicActivate, extractLocaleData } from '@documenso/lib/utils/i18n';
import { langCookie } from './storage/lang-cookie.server'; import { langCookie } from './storage/lang-cookie.server';
import { themeSessionResolver } from './storage/theme-session.server';
export const streamTimeout = 5_000; export const streamTimeout = 5_000;
@ -32,10 +30,6 @@ export default async function handleRequest(
await dynamicActivate(language); await dynamicActivate(language);
const { getTheme } = await themeSessionResolver(request);
const theme = getTheme();
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let shellRendered = false; let shellRendered = false;
const userAgent = request.headers.get('user-agent'); const userAgent = request.headers.get('user-agent');
@ -47,9 +41,7 @@ export default async function handleRequest(
const { pipe, abort } = renderToPipeableStream( const { pipe, abort } = renderToPipeableStream(
<I18nProvider i18n={i18n}> <I18nProvider i18n={i18n}>
<ThemeProvider specifiedTheme={theme} themeAction="/api/theme"> <ServerRouter context={routerContext} url={request.url} />
<ServerRouter context={routerContext} url={request.url} />
</ThemeProvider>
</I18nProvider>, </I18nProvider>,
{ {
[readyOption]() { [readyOption]() {

View File

@ -1,47 +0,0 @@
import { useEffect } from 'react';
import posthog from 'posthog-js';
import { useLocation, useSearchParams } from 'react-router';
import { extractPostHogConfig } from '@documenso/lib/constants/feature-flags';
export function PostHogPageview() {
const postHogConfig = extractPostHogConfig();
const { pathname } = useLocation();
const [searchParams] = useSearchParams();
// const { sessionData } = useOptionalSession();
// const user = sessionData?.user;
if (typeof window !== 'undefined' && postHogConfig) {
posthog.init(postHogConfig.key, {
api_host: postHogConfig.host,
disable_session_recording: true,
// loaded: () => {
// if (user) {
// posthog.identify(user.email ?? user.id.toString());
// } else {
// posthog.reset();
// }
// },
custom_campaign_params: ['src'],
});
}
useEffect(() => {
if (!postHogConfig || !pathname) {
return;
}
let url = window.origin + pathname;
if (searchParams && searchParams.toString()) {
url = url + `?${searchParams.toString()}`;
}
posthog.capture('$pageview', {
$current_url: url,
});
}, [pathname, searchParams, postHogConfig]);
return null;
}

View File

@ -1,4 +1,4 @@
import { Suspense, useEffect } from 'react'; import { useEffect } from 'react';
import Plausible from 'plausible-tracker'; import Plausible from 'plausible-tracker';
import { import {
@ -12,7 +12,7 @@ import {
useLoaderData, useLoaderData,
useLocation, useLocation,
} from 'react-router'; } from 'react-router';
import { PreventFlashOnWrongTheme, useTheme } from 'remix-themes'; import { PreventFlashOnWrongTheme, ThemeProvider, useTheme } from 'remix-themes';
import { getOptionalSession } from '@documenso/auth/server/lib/utils/get-session'; import { getOptionalSession } from '@documenso/auth/server/lib/utils/get-session';
import { SessionProvider } from '@documenso/lib/client-only/providers/session'; import { SessionProvider } from '@documenso/lib/client-only/providers/session';
@ -28,7 +28,6 @@ import type { Route } from './+types/root';
import stylesheet from './app.css?url'; import stylesheet from './app.css?url';
import { GenericErrorLayout } from './components/general/generic-error-layout'; import { GenericErrorLayout } from './components/general/generic-error-layout';
import { RefreshOnFocus } from './components/general/refresh-on-focus'; import { RefreshOnFocus } from './components/general/refresh-on-focus';
import { PostHogPageview } from './providers/posthog';
import { langCookie } from './storage/lang-cookie.server'; import { langCookie } from './storage/lang-cookie.server';
import { themeSessionResolver } from './storage/theme-session.server'; import { themeSessionResolver } from './storage/theme-session.server';
import { appMetaTags } from './utils/meta'; import { appMetaTags } from './utils/meta';
@ -106,9 +105,7 @@ export async function loader({ request }: Route.LoaderArgs) {
} }
export function Layout({ children }: { children: React.ReactNode }) { export function Layout({ children }: { children: React.ReactNode }) {
const { publicEnv, lang, session, ...data } = useLoaderData<typeof loader>() || {}; const { theme } = useLoaderData<typeof loader>() || {};
const [theme] = useTheme();
const location = useLocation(); const location = useLocation();
@ -118,6 +115,18 @@ export function Layout({ children }: { children: React.ReactNode }) {
} }
}, [location.pathname]); }, [location.pathname]);
return (
<ThemeProvider specifiedTheme={theme} themeAction="/api/theme">
<LayoutContent>{children}</LayoutContent>
</ThemeProvider>
);
}
export function LayoutContent({ children }: { children: React.ReactNode }) {
const { publicEnv, session, lang, ...data } = useLoaderData<typeof loader>() || {};
const [theme] = useTheme();
return ( return (
<html translate="no" lang={lang} data-theme={theme} className={theme ?? ''}> <html translate="no" lang={lang} data-theme={theme} className={theme ?? ''}>
<head> <head>
@ -133,10 +142,6 @@ export function Layout({ children }: { children: React.ReactNode }) {
<meta name="google" content="notranslate" /> <meta name="google" content="notranslate" />
<PreventFlashOnWrongTheme ssrTheme={Boolean(data.theme)} /> <PreventFlashOnWrongTheme ssrTheme={Boolean(data.theme)} />
<Suspense>
<PostHogPageview />
</Suspense>
{/* Fix: https://stackoverflow.com/questions/21147149/flash-of-unstyled-content-fouc-in-firefox-only-is-ff-slow-renderer */} {/* Fix: https://stackoverflow.com/questions/21147149/flash-of-unstyled-content-fouc-in-firefox-only-is-ff-slow-renderer */}
<script>0</script> <script>0</script>
</head> </head>

View File

@ -23,6 +23,8 @@ const posthogProxy = async (request: Request) => {
method: request.method, method: request.method,
headers, headers,
body: request.body, body: request.body,
// @ts-expect-error - Not really sure about this
duplex: 'half',
}); });
return new Response(response.body, { return new Response(response.body, {

View File

@ -48,8 +48,8 @@
"luxon": "^3.4.0", "luxon": "^3.4.0",
"papaparse": "^5.4.1", "papaparse": "^5.4.1",
"plausible-tracker": "^0.3.9", "plausible-tracker": "^0.3.9",
"posthog-js": "^1.75.3", "posthog-js": "^1.223.3",
"posthog-node": "^3.1.1", "posthog-node": "^4.7.0",
"react": "^18", "react": "^18",
"react-call": "^1.3.0", "react-call": "^1.3.0",
"react-dom": "^18", "react-dom": "^18",
@ -99,4 +99,4 @@
"vite-plugin-babel-macros": "^1.0.6", "vite-plugin-babel-macros": "^1.0.6",
"vite-tsconfig-paths": "^5.1.4" "vite-tsconfig-paths": "^5.1.4"
} }
} }

65
package-lock.json generated
View File

@ -131,8 +131,8 @@
"luxon": "^3.4.0", "luxon": "^3.4.0",
"papaparse": "^5.4.1", "papaparse": "^5.4.1",
"plausible-tracker": "^0.3.9", "plausible-tracker": "^0.3.9",
"posthog-js": "^1.75.3", "posthog-js": "^1.223.3",
"posthog-node": "^3.1.1", "posthog-node": "^4.7.0",
"react": "^18", "react": "^18",
"react-call": "^1.3.0", "react-call": "^1.3.0",
"react-dom": "^18", "react-dom": "^18",
@ -849,6 +849,17 @@
"win32" "win32"
] ]
}, },
"apps/remix/node_modules/axios": {
"version": "1.7.9",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
"integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"apps/remix/node_modules/esbuild": { "apps/remix/node_modules/esbuild": {
"version": "0.24.2", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz",
@ -890,6 +901,18 @@
"@esbuild/win32-x64": "0.24.2" "@esbuild/win32-x64": "0.24.2"
} }
}, },
"apps/remix/node_modules/posthog-node": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-4.7.0.tgz",
"integrity": "sha512-RgdUKSW8MfMOkjUa8cYVqWndNjPePNuuxlGbrZC6z1WRBsVc6TdGl8caidmC10RW8mu/BOfmrGbP4cRTo2jARg==",
"license": "MIT",
"dependencies": {
"axios": "^1.7.4"
},
"engines": {
"node": ">=15.0.0"
}
},
"apps/remix/node_modules/rollup": { "apps/remix/node_modules/rollup": {
"version": "4.34.5", "version": "4.34.5",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.5.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.5.tgz",
@ -9751,6 +9774,16 @@
"win32" "win32"
] ]
}, },
"node_modules/@rrweb/types": {
"version": "2.0.0-alpha.17",
"resolved": "https://registry.npmjs.org/@rrweb/types/-/types-2.0.0-alpha.17.tgz",
"integrity": "sha512-AfDTVUuCyCaIG0lTSqYtrZqJX39ZEYzs4fYKnexhQ+id+kbZIpIJtaut5cto6dWZbB3SEe4fW0o90Po3LvTmfg==",
"license": "MIT",
"peer": true,
"dependencies": {
"rrweb-snapshot": "^2.0.0-alpha.17"
}
},
"node_modules/@rtsao/scc": { "node_modules/@rtsao/scc": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
@ -31027,21 +31060,24 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/posthog-js": { "node_modules/posthog-js": {
"version": "1.215.3", "version": "1.223.3",
"resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.215.3.tgz", "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.223.3.tgz",
"integrity": "sha512-vTk8/gyjbKP7EbDxWzo/GBCK7Ok7M6RTqEWOzRgIxCPf/KA5faFi5z1T4cRR1oPgcDqLeB1ZGa04Za/cPEHxgA==", "integrity": "sha512-ZQTc17M21IzkQmECJa2Xjont4tZrvIn252uGT3sTfmahTqZoW4j+kBj4eOJt9SNR6hOheFNkg7MSiI/rA6FaDA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"core-js": "^3.38.1", "core-js": "^3.38.1",
"fflate": "^0.4.8", "fflate": "^0.4.8",
"preact": "^10.19.3", "preact": "^10.19.3",
"web-vitals": "^4.2.0" "web-vitals": "^4.2.0"
},
"peerDependencies": {
"@rrweb/types": "2.0.0-alpha.17"
} }
}, },
"node_modules/posthog-js/node_modules/preact": { "node_modules/posthog-js/node_modules/preact": {
"version": "10.25.4", "version": "10.26.2",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz", "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.2.tgz",
"integrity": "sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==", "integrity": "sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==",
"license": "MIT", "license": "MIT",
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@ -31052,6 +31088,7 @@
"version": "3.6.3", "version": "3.6.3",
"resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz", "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz",
"integrity": "sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw==", "integrity": "sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"axios": "^1.6.2", "axios": "^1.6.2",
@ -31065,6 +31102,7 @@
"version": "1.7.9", "version": "1.7.9",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
"integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.6",
@ -33884,6 +33922,16 @@
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"node_modules/rrweb-snapshot": {
"version": "2.0.0-alpha.18",
"resolved": "https://registry.npmjs.org/rrweb-snapshot/-/rrweb-snapshot-2.0.0-alpha.18.tgz",
"integrity": "sha512-hBHZL/NfgQX6wO1D9mpwqFu1NJPpim+moIcKhFEjVTZVRUfCln+LOugRc4teVTCISYHN8Cw5e2iNTWCSm+SkoA==",
"license": "MIT",
"peer": true,
"dependencies": {
"postcss": "^8.4.38"
}
},
"node_modules/run-async": { "node_modules/run-async": {
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
@ -33921,6 +33969,7 @@
"version": "0.8.14", "version": "0.8.14",
"resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz", "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz",
"integrity": "sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==", "integrity": "sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/rw": { "node_modules/rw": {

View File

@ -20,6 +20,20 @@ export function useAnalytics() {
posthog.capture(event, properties); posthog.capture(event, properties);
}; };
/**
* Capture an analytic event.
*
* @param error The error to capture.
* @param properties Properties to attach to the event.
*/
const captureException = (error: Error, properties?: Record<string, unknown>) => {
if (!isPostHogEnabled) {
return;
}
posthog.captureException(error, properties);
};
/** /**
* Start the session recording. * Start the session recording.
* *
@ -53,6 +67,7 @@ export function useAnalytics() {
return { return {
capture, capture,
captureException,
startSessionRecording, startSessionRecording,
stopSessionRecording, stopSessionRecording,
}; };

View File

@ -998,7 +998,7 @@ msgstr "Ein Fehler ist aufgetreten, während der Benutzer aktiviert wurde."
msgid "An error occurred while loading team members. Please try again later." msgid "An error occurred while loading team members. Please try again later."
msgstr "Ein Fehler ist aufgetreten, während die Teammitglieder geladen wurden. Bitte versuchen Sie es später erneut." msgstr "Ein Fehler ist aufgetreten, während die Teammitglieder geladen wurden. Bitte versuchen Sie es später erneut."
#: packages/ui/primitives/pdf-viewer.tsx:169 #: packages/ui/primitives/pdf-viewer.tsx:167
msgid "An error occurred while loading the document." msgid "An error occurred while loading the document."
msgstr "Ein Fehler ist beim Laden des Dokuments aufgetreten." msgstr "Ein Fehler ist beim Laden des Dokuments aufgetreten."
@ -1410,7 +1410,7 @@ msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172 #: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263 #: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156 #: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:235 #: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:234
#: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167 #: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167
#: apps/remix/app/components/dialogs/template-move-dialog.tsx:145 #: apps/remix/app/components/dialogs/template-move-dialog.tsx:145
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71 #: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71
@ -2734,7 +2734,7 @@ msgstr "Geben Sie hier Ihren Text ein"
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59 #: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62
#: packages/ui/primitives/pdf-viewer.tsx:168 #: packages/ui/primitives/pdf-viewer.tsx:166
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222
msgid "Error" msgid "Error"
msgstr "Fehler" msgstr "Fehler"
@ -3268,7 +3268,7 @@ msgid "Load older activity"
msgstr "Ältere Aktivitäten laden" msgstr "Ältere Aktivitäten laden"
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29 #: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29
#: packages/ui/primitives/pdf-viewer.tsx:46 #: packages/ui/primitives/pdf-viewer.tsx:44
#: packages/ui/primitives/lazy-pdf-viewer.tsx:12 #: packages/ui/primitives/lazy-pdf-viewer.tsx:12
msgid "Loading document..." msgid "Loading document..."
msgstr "Lade Dokument..." msgstr "Lade Dokument..."
@ -3740,7 +3740,7 @@ msgid "Page {0} of {1}"
msgstr "Seite {0} von {1}" msgstr "Seite {0} von {1}"
#. placeholder {0}: i + 1 #. placeholder {0}: i + 1
#: packages/ui/primitives/pdf-viewer.tsx:261 #: packages/ui/primitives/pdf-viewer.tsx:259
msgid "Page {0} of {numPages}" msgid "Page {0} of {numPages}"
msgstr "Seite {0} von {numPages}" msgstr "Seite {0} von {numPages}"
@ -4009,8 +4009,8 @@ msgstr "Bitte versuchen Sie es erneut und stellen Sie sicher, dass Sie die korre
msgid "Please try again later." msgid "Please try again later."
msgstr "Bitte versuchen Sie es später noch einmal." msgstr "Bitte versuchen Sie es später noch einmal."
#: packages/ui/primitives/pdf-viewer.tsx:225 #: packages/ui/primitives/pdf-viewer.tsx:223
#: packages/ui/primitives/pdf-viewer.tsx:240 #: packages/ui/primitives/pdf-viewer.tsx:238
msgid "Please try again or contact our support." msgid "Please try again or contact our support."
msgstr "Bitte versuchen Sie es erneut oder kontaktieren Sie unseren Support." msgstr "Bitte versuchen Sie es erneut oder kontaktieren Sie unseren Support."
@ -4906,8 +4906,8 @@ msgstr "Etwas ist schiefgelaufen beim Versuch, das Eigentum des Teams <0>{0}</0>
msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later." msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later."
msgstr "Etwas ist schiefgelaufen beim Versuch, Ihre E-Mail-Adresse für <0>{0}</0> zu bestätigen. Bitte versuchen Sie es später erneut." msgstr "Etwas ist schiefgelaufen beim Versuch, Ihre E-Mail-Adresse für <0>{0}</0> zu bestätigen. Bitte versuchen Sie es später erneut."
#: packages/ui/primitives/pdf-viewer.tsx:222 #: packages/ui/primitives/pdf-viewer.tsx:220
#: packages/ui/primitives/pdf-viewer.tsx:237 #: packages/ui/primitives/pdf-viewer.tsx:235
msgid "Something went wrong while loading the document." msgid "Something went wrong while loading the document."
msgstr "Beim Laden des Dokuments ist ein Fehler aufgetreten." msgstr "Beim Laden des Dokuments ist ein Fehler aufgetreten."

View File

@ -993,7 +993,7 @@ msgstr "An error occurred while enabling the user."
msgid "An error occurred while loading team members. Please try again later." msgid "An error occurred while loading team members. Please try again later."
msgstr "An error occurred while loading team members. Please try again later." msgstr "An error occurred while loading team members. Please try again later."
#: packages/ui/primitives/pdf-viewer.tsx:169 #: packages/ui/primitives/pdf-viewer.tsx:167
msgid "An error occurred while loading the document." msgid "An error occurred while loading the document."
msgstr "An error occurred while loading the document." msgstr "An error occurred while loading the document."
@ -1405,7 +1405,7 @@ msgstr "Can prepare"
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172 #: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263 #: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156 #: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:235 #: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:234
#: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167 #: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167
#: apps/remix/app/components/dialogs/template-move-dialog.tsx:145 #: apps/remix/app/components/dialogs/template-move-dialog.tsx:145
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71 #: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71
@ -2729,7 +2729,7 @@ msgstr "Enter your text here"
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59 #: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62
#: packages/ui/primitives/pdf-viewer.tsx:168 #: packages/ui/primitives/pdf-viewer.tsx:166
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
@ -3263,7 +3263,7 @@ msgid "Load older activity"
msgstr "Load older activity" msgstr "Load older activity"
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29 #: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29
#: packages/ui/primitives/pdf-viewer.tsx:46 #: packages/ui/primitives/pdf-viewer.tsx:44
#: packages/ui/primitives/lazy-pdf-viewer.tsx:12 #: packages/ui/primitives/lazy-pdf-viewer.tsx:12
msgid "Loading document..." msgid "Loading document..."
msgstr "Loading document..." msgstr "Loading document..."
@ -3735,7 +3735,7 @@ msgid "Page {0} of {1}"
msgstr "Page {0} of {1}" msgstr "Page {0} of {1}"
#. placeholder {0}: i + 1 #. placeholder {0}: i + 1
#: packages/ui/primitives/pdf-viewer.tsx:261 #: packages/ui/primitives/pdf-viewer.tsx:259
msgid "Page {0} of {numPages}" msgid "Page {0} of {numPages}"
msgstr "Page {0} of {numPages}" msgstr "Page {0} of {numPages}"
@ -4004,8 +4004,8 @@ msgstr "Please try again and make sure you enter the correct email address."
msgid "Please try again later." msgid "Please try again later."
msgstr "Please try again later." msgstr "Please try again later."
#: packages/ui/primitives/pdf-viewer.tsx:225 #: packages/ui/primitives/pdf-viewer.tsx:223
#: packages/ui/primitives/pdf-viewer.tsx:240 #: packages/ui/primitives/pdf-viewer.tsx:238
msgid "Please try again or contact our support." msgid "Please try again or contact our support."
msgstr "Please try again or contact our support." msgstr "Please try again or contact our support."
@ -4901,8 +4901,8 @@ msgstr "Something went wrong while attempting to transfer the ownership of team
msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later." msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later."
msgstr "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later." msgstr "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later."
#: packages/ui/primitives/pdf-viewer.tsx:222 #: packages/ui/primitives/pdf-viewer.tsx:220
#: packages/ui/primitives/pdf-viewer.tsx:237 #: packages/ui/primitives/pdf-viewer.tsx:235
msgid "Something went wrong while loading the document." msgid "Something went wrong while loading the document."
msgstr "Something went wrong while loading the document." msgstr "Something went wrong while loading the document."

View File

@ -998,7 +998,7 @@ msgstr "Se produjo un error al habilitar al usuario."
msgid "An error occurred while loading team members. Please try again later." msgid "An error occurred while loading team members. Please try again later."
msgstr "Ocurrió un error al cargar los miembros del equipo. Por favor intenta de nuevo más tarde." msgstr "Ocurrió un error al cargar los miembros del equipo. Por favor intenta de nuevo más tarde."
#: packages/ui/primitives/pdf-viewer.tsx:169 #: packages/ui/primitives/pdf-viewer.tsx:167
msgid "An error occurred while loading the document." msgid "An error occurred while loading the document."
msgstr "Se produjo un error al cargar el documento." msgstr "Se produjo un error al cargar el documento."
@ -1410,7 +1410,7 @@ msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172 #: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263 #: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156 #: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:235 #: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:234
#: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167 #: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167
#: apps/remix/app/components/dialogs/template-move-dialog.tsx:145 #: apps/remix/app/components/dialogs/template-move-dialog.tsx:145
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71 #: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71
@ -2734,7 +2734,7 @@ msgstr "Ingresa tu texto aquí"
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59 #: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62
#: packages/ui/primitives/pdf-viewer.tsx:168 #: packages/ui/primitives/pdf-viewer.tsx:166
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
@ -3268,7 +3268,7 @@ msgid "Load older activity"
msgstr "Cargar actividad anterior" msgstr "Cargar actividad anterior"
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29 #: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29
#: packages/ui/primitives/pdf-viewer.tsx:46 #: packages/ui/primitives/pdf-viewer.tsx:44
#: packages/ui/primitives/lazy-pdf-viewer.tsx:12 #: packages/ui/primitives/lazy-pdf-viewer.tsx:12
msgid "Loading document..." msgid "Loading document..."
msgstr "Cargando documento..." msgstr "Cargando documento..."
@ -3740,7 +3740,7 @@ msgid "Page {0} of {1}"
msgstr "Página {0} de {1}" msgstr "Página {0} de {1}"
#. placeholder {0}: i + 1 #. placeholder {0}: i + 1
#: packages/ui/primitives/pdf-viewer.tsx:261 #: packages/ui/primitives/pdf-viewer.tsx:259
msgid "Page {0} of {numPages}" msgid "Page {0} of {numPages}"
msgstr "Página {0} de {numPages}" msgstr "Página {0} de {numPages}"
@ -4009,8 +4009,8 @@ msgstr "Por favor, intenta de nuevo y asegúrate de ingresar la dirección de co
msgid "Please try again later." msgid "Please try again later."
msgstr "Por favor, intenta de nuevo más tarde." msgstr "Por favor, intenta de nuevo más tarde."
#: packages/ui/primitives/pdf-viewer.tsx:225 #: packages/ui/primitives/pdf-viewer.tsx:223
#: packages/ui/primitives/pdf-viewer.tsx:240 #: packages/ui/primitives/pdf-viewer.tsx:238
msgid "Please try again or contact our support." msgid "Please try again or contact our support."
msgstr "Por favor, inténtalo de nuevo o contacta a nuestro soporte." msgstr "Por favor, inténtalo de nuevo o contacta a nuestro soporte."
@ -4906,8 +4906,8 @@ msgstr "Algo salió mal al intentar transferir la propiedad del equipo <0>{0}</0
msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later." msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later."
msgstr "Algo salió mal al intentar verificar tu dirección de correo electrónico para <0>{0}</0>. Por favor, intenta de nuevo más tarde." msgstr "Algo salió mal al intentar verificar tu dirección de correo electrónico para <0>{0}</0>. Por favor, intenta de nuevo más tarde."
#: packages/ui/primitives/pdf-viewer.tsx:222 #: packages/ui/primitives/pdf-viewer.tsx:220
#: packages/ui/primitives/pdf-viewer.tsx:237 #: packages/ui/primitives/pdf-viewer.tsx:235
msgid "Something went wrong while loading the document." msgid "Something went wrong while loading the document."
msgstr "Algo salió mal al cargar el documento." msgstr "Algo salió mal al cargar el documento."

View File

@ -998,7 +998,7 @@ msgstr "Une erreur est survenue lors de l'activation de l'utilisateur."
msgid "An error occurred while loading team members. Please try again later." msgid "An error occurred while loading team members. Please try again later."
msgstr "Une erreur est survenue lors du chargement des membres de l'équipe. Veuillez réessayer plus tard." msgstr "Une erreur est survenue lors du chargement des membres de l'équipe. Veuillez réessayer plus tard."
#: packages/ui/primitives/pdf-viewer.tsx:169 #: packages/ui/primitives/pdf-viewer.tsx:167
msgid "An error occurred while loading the document." msgid "An error occurred while loading the document."
msgstr "Une erreur est survenue lors du chargement du document." msgstr "Une erreur est survenue lors du chargement du document."
@ -1410,7 +1410,7 @@ msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172 #: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263 #: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156 #: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:235 #: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:234
#: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167 #: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167
#: apps/remix/app/components/dialogs/template-move-dialog.tsx:145 #: apps/remix/app/components/dialogs/template-move-dialog.tsx:145
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71 #: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71
@ -2734,7 +2734,7 @@ msgstr "Entrez votre texte ici"
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59 #: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62
#: packages/ui/primitives/pdf-viewer.tsx:168 #: packages/ui/primitives/pdf-viewer.tsx:166
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
@ -3268,7 +3268,7 @@ msgid "Load older activity"
msgstr "Charger l'activité plus ancienne" msgstr "Charger l'activité plus ancienne"
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29 #: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29
#: packages/ui/primitives/pdf-viewer.tsx:46 #: packages/ui/primitives/pdf-viewer.tsx:44
#: packages/ui/primitives/lazy-pdf-viewer.tsx:12 #: packages/ui/primitives/lazy-pdf-viewer.tsx:12
msgid "Loading document..." msgid "Loading document..."
msgstr "Chargement du document..." msgstr "Chargement du document..."
@ -3740,7 +3740,7 @@ msgid "Page {0} of {1}"
msgstr "Page {0} sur {1}" msgstr "Page {0} sur {1}"
#. placeholder {0}: i + 1 #. placeholder {0}: i + 1
#: packages/ui/primitives/pdf-viewer.tsx:261 #: packages/ui/primitives/pdf-viewer.tsx:259
msgid "Page {0} of {numPages}" msgid "Page {0} of {numPages}"
msgstr "Page {0} sur {numPages}" msgstr "Page {0} sur {numPages}"
@ -4009,8 +4009,8 @@ msgstr "Veuillez réessayer et assurez-vous d'entrer la bonne adresse email."
msgid "Please try again later." msgid "Please try again later."
msgstr "Veuillez réessayer plus tard." msgstr "Veuillez réessayer plus tard."
#: packages/ui/primitives/pdf-viewer.tsx:225 #: packages/ui/primitives/pdf-viewer.tsx:223
#: packages/ui/primitives/pdf-viewer.tsx:240 #: packages/ui/primitives/pdf-viewer.tsx:238
msgid "Please try again or contact our support." msgid "Please try again or contact our support."
msgstr "Veuillez réessayer ou contacter notre support." msgstr "Veuillez réessayer ou contacter notre support."
@ -4906,8 +4906,8 @@ msgstr "Quelque chose a mal tourné lors de la tentative de transfert de la prop
msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later." msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later."
msgstr "Quelque chose a mal tourné lors de la tentative de vérification de votre adresse e-mail pour <0>{0}</0>. Veuillez réessayer plus tard." msgstr "Quelque chose a mal tourné lors de la tentative de vérification de votre adresse e-mail pour <0>{0}</0>. Veuillez réessayer plus tard."
#: packages/ui/primitives/pdf-viewer.tsx:222 #: packages/ui/primitives/pdf-viewer.tsx:220
#: packages/ui/primitives/pdf-viewer.tsx:237 #: packages/ui/primitives/pdf-viewer.tsx:235
msgid "Something went wrong while loading the document." msgid "Something went wrong while loading the document."
msgstr "Une erreur s'est produite lors du chargement du document." msgstr "Une erreur s'est produite lors du chargement du document."

View File

@ -998,7 +998,7 @@ msgstr "Si è verificato un errore durante l'abilitazione dell'utente."
msgid "An error occurred while loading team members. Please try again later." msgid "An error occurred while loading team members. Please try again later."
msgstr "Si è verificato un errore durante il caricamento dei membri del team. Per favore riprova più tardi." msgstr "Si è verificato un errore durante il caricamento dei membri del team. Per favore riprova più tardi."
#: packages/ui/primitives/pdf-viewer.tsx:169 #: packages/ui/primitives/pdf-viewer.tsx:167
msgid "An error occurred while loading the document." msgid "An error occurred while loading the document."
msgstr "Si è verificato un errore durante il caricamento del documento." msgstr "Si è verificato un errore durante il caricamento del documento."
@ -1410,7 +1410,7 @@ msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172 #: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263 #: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156 #: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:235 #: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:234
#: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167 #: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167
#: apps/remix/app/components/dialogs/template-move-dialog.tsx:145 #: apps/remix/app/components/dialogs/template-move-dialog.tsx:145
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71 #: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71
@ -2734,7 +2734,7 @@ msgstr "Inserisci il tuo testo qui"
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59 #: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62
#: packages/ui/primitives/pdf-viewer.tsx:168 #: packages/ui/primitives/pdf-viewer.tsx:166
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222
msgid "Error" msgid "Error"
msgstr "Errore" msgstr "Errore"
@ -3268,7 +3268,7 @@ msgid "Load older activity"
msgstr "Carica attività precedente" msgstr "Carica attività precedente"
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29 #: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29
#: packages/ui/primitives/pdf-viewer.tsx:46 #: packages/ui/primitives/pdf-viewer.tsx:44
#: packages/ui/primitives/lazy-pdf-viewer.tsx:12 #: packages/ui/primitives/lazy-pdf-viewer.tsx:12
msgid "Loading document..." msgid "Loading document..."
msgstr "Caricamento del documento..." msgstr "Caricamento del documento..."
@ -3740,7 +3740,7 @@ msgid "Page {0} of {1}"
msgstr "Pagina {0} di {1}" msgstr "Pagina {0} di {1}"
#. placeholder {0}: i + 1 #. placeholder {0}: i + 1
#: packages/ui/primitives/pdf-viewer.tsx:261 #: packages/ui/primitives/pdf-viewer.tsx:259
msgid "Page {0} of {numPages}" msgid "Page {0} of {numPages}"
msgstr "Pagina {0} di {numPages}" msgstr "Pagina {0} di {numPages}"
@ -4009,8 +4009,8 @@ msgstr "Si prega di riprovare assicurandosi di inserire l'indirizzo email corret
msgid "Please try again later." msgid "Please try again later."
msgstr "Si prega di riprovare più tardi." msgstr "Si prega di riprovare più tardi."
#: packages/ui/primitives/pdf-viewer.tsx:225 #: packages/ui/primitives/pdf-viewer.tsx:223
#: packages/ui/primitives/pdf-viewer.tsx:240 #: packages/ui/primitives/pdf-viewer.tsx:238
msgid "Please try again or contact our support." msgid "Please try again or contact our support."
msgstr "Per favore, riprova o contatta il nostro supporto." msgstr "Per favore, riprova o contatta il nostro supporto."
@ -4906,8 +4906,8 @@ msgstr "Qualcosa è andato storto durante il tentativo di trasferimento della pr
msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later." msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later."
msgstr "Qualcosa è andato storto durante il tentativo di verifica del tuo indirizzo e-mail per <0>{0}</0>. Riprova più tardi." msgstr "Qualcosa è andato storto durante il tentativo di verifica del tuo indirizzo e-mail per <0>{0}</0>. Riprova più tardi."
#: packages/ui/primitives/pdf-viewer.tsx:222 #: packages/ui/primitives/pdf-viewer.tsx:220
#: packages/ui/primitives/pdf-viewer.tsx:237 #: packages/ui/primitives/pdf-viewer.tsx:235
msgid "Something went wrong while loading the document." msgid "Something went wrong while loading the document."
msgstr "Qualcosa è andato storto durante il caricamento del documento." msgstr "Qualcosa è andato storto durante il caricamento del documento."

View File

@ -998,7 +998,7 @@ msgstr "Wystąpił błąd podczas włączania użytkownika."
msgid "An error occurred while loading team members. Please try again later." msgid "An error occurred while loading team members. Please try again later."
msgstr "Wystąpił błąd podczas ładowania członków zespołu. Proszę spróbować ponownie później." msgstr "Wystąpił błąd podczas ładowania członków zespołu. Proszę spróbować ponownie później."
#: packages/ui/primitives/pdf-viewer.tsx:169 #: packages/ui/primitives/pdf-viewer.tsx:167
msgid "An error occurred while loading the document." msgid "An error occurred while loading the document."
msgstr "Wystąpił błąd podczas ładowania dokumentu." msgstr "Wystąpił błąd podczas ładowania dokumentu."
@ -1410,7 +1410,7 @@ msgstr ""
#: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172 #: apps/remix/app/components/forms/2fa/view-recovery-codes-dialog.tsx:172
#: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263 #: apps/remix/app/components/forms/2fa/enable-authenticator-app-dialog.tsx:263
#: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156 #: apps/remix/app/components/dialogs/webhook-delete-dialog.tsx:156
#: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:235 #: apps/remix/app/components/dialogs/webhook-create-dialog.tsx:234
#: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167 #: apps/remix/app/components/dialogs/token-delete-dialog.tsx:167
#: apps/remix/app/components/dialogs/template-move-dialog.tsx:145 #: apps/remix/app/components/dialogs/template-move-dialog.tsx:145
#: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71 #: apps/remix/app/components/dialogs/template-duplicate-dialog.tsx:71
@ -2734,7 +2734,7 @@ msgstr "Wprowadź swój tekst tutaj"
#: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59 #: apps/remix/app/components/dialogs/admin-user-enable-dialog.tsx:59
#: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-disable-dialog.tsx:62
#: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62 #: apps/remix/app/components/dialogs/admin-user-delete-dialog.tsx:62
#: packages/ui/primitives/pdf-viewer.tsx:168 #: packages/ui/primitives/pdf-viewer.tsx:166
#: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222 #: packages/ui/primitives/document-flow/field-item-advanced-settings.tsx:222
msgid "Error" msgid "Error"
msgstr "Błąd" msgstr "Błąd"
@ -3268,7 +3268,7 @@ msgid "Load older activity"
msgstr "Załaduj starszą aktywność" msgstr "Załaduj starszą aktywność"
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29 #: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx:29
#: packages/ui/primitives/pdf-viewer.tsx:46 #: packages/ui/primitives/pdf-viewer.tsx:44
#: packages/ui/primitives/lazy-pdf-viewer.tsx:12 #: packages/ui/primitives/lazy-pdf-viewer.tsx:12
msgid "Loading document..." msgid "Loading document..."
msgstr "Ładowanie dokumentu..." msgstr "Ładowanie dokumentu..."
@ -3740,7 +3740,7 @@ msgid "Page {0} of {1}"
msgstr "Strona {0} z {1}" msgstr "Strona {0} z {1}"
#. placeholder {0}: i + 1 #. placeholder {0}: i + 1
#: packages/ui/primitives/pdf-viewer.tsx:261 #: packages/ui/primitives/pdf-viewer.tsx:259
msgid "Page {0} of {numPages}" msgid "Page {0} of {numPages}"
msgstr "Strona {0} z {numPages}" msgstr "Strona {0} z {numPages}"
@ -4009,8 +4009,8 @@ msgstr "Spróbuj ponownie i upewnij się, że wprowadzasz poprawny adres email."
msgid "Please try again later." msgid "Please try again later."
msgstr "Proszę spróbować ponownie później." msgstr "Proszę spróbować ponownie później."
#: packages/ui/primitives/pdf-viewer.tsx:225 #: packages/ui/primitives/pdf-viewer.tsx:223
#: packages/ui/primitives/pdf-viewer.tsx:240 #: packages/ui/primitives/pdf-viewer.tsx:238
msgid "Please try again or contact our support." msgid "Please try again or contact our support."
msgstr "Spróbuj ponownie lub skontaktuj się z naszym wsparciem." msgstr "Spróbuj ponownie lub skontaktuj się z naszym wsparciem."
@ -4906,8 +4906,8 @@ msgstr "Coś poszło nie tak podczas próby przeniesienia własności zespołu <
msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later." msgid "Something went wrong while attempting to verify your email address for <0>{0}</0>. Please try again later."
msgstr "Coś poszło nie tak podczas próby weryfikacji adresu e-mail dla <0>{0}</0>. Proszę spróbować ponownie później." msgstr "Coś poszło nie tak podczas próby weryfikacji adresu e-mail dla <0>{0}</0>. Proszę spróbować ponownie później."
#: packages/ui/primitives/pdf-viewer.tsx:222 #: packages/ui/primitives/pdf-viewer.tsx:220
#: packages/ui/primitives/pdf-viewer.tsx:237 #: packages/ui/primitives/pdf-viewer.tsx:235
msgid "Something went wrong while loading the document." msgid "Something went wrong while loading the document."
msgstr "Coś poszło nie tak podczas ładowania dokumentu." msgstr "Coś poszło nie tak podczas ładowania dokumentu."

View File

@ -2,6 +2,8 @@ import { DocumentDataType } from '@prisma/client';
import { base64 } from '@scure/base'; import { base64 } from '@scure/base';
import { match } from 'ts-pattern'; import { match } from 'ts-pattern';
import { getPresignGetUrl } from './server-actions';
export type GetFileOptions = { export type GetFileOptions = {
type: DocumentDataType; type: DocumentDataType;
data: string; data: string;
@ -30,8 +32,6 @@ const getFileFromBytes64 = (data: string) => {
}; };
const getFileFromS3 = async (key: string) => { const getFileFromS3 = async (key: string) => {
const { getPresignGetUrl } = await import('./server-actions');
const { url } = await getPresignGetUrl(key); const { url } = await getPresignGetUrl(key);
const response = await fetch(url, { const response = await fetch(url, {

View File

@ -2,6 +2,8 @@ import { DocumentDataType } from '@prisma/client';
import { base64 } from '@scure/base'; import { base64 } from '@scure/base';
import { match } from 'ts-pattern'; import { match } from 'ts-pattern';
import { getAbsolutePresignPostUrl } from './server-actions';
export type UpdateFileOptions = { export type UpdateFileOptions = {
type: DocumentDataType; type: DocumentDataType;
oldData: string; oldData: string;
@ -37,8 +39,6 @@ const updateFileWithBytes64 = (data: string) => {
}; };
const updateFileWithS3 = async (key: string, data: string) => { const updateFileWithS3 = async (key: string, data: string) => {
const { getAbsolutePresignPostUrl } = await import('./server-actions');
const { url } = await getAbsolutePresignPostUrl(key); const { url } = await getAbsolutePresignPostUrl(key);
const response = await fetch(url, { const response = await fetch(url, {