Store source metadata for imported documents (#6136)
This commit is contained in:
@@ -5,6 +5,7 @@ import { NavigationNode, TeamPreference } from "@shared/types";
|
||||
import { RevisionHelper } from "@shared/utils/RevisionHelper";
|
||||
import Document from "~/models/Document";
|
||||
import Revision from "~/models/Revision";
|
||||
import Error402 from "~/scenes/Error402";
|
||||
import Error404 from "~/scenes/Error404";
|
||||
import ErrorOffline from "~/scenes/ErrorOffline";
|
||||
import useCurrentTeam from "~/hooks/useCurrentTeam";
|
||||
@@ -12,7 +13,11 @@ import useCurrentUser from "~/hooks/useCurrentUser";
|
||||
import usePolicy from "~/hooks/usePolicy";
|
||||
import useStores from "~/hooks/useStores";
|
||||
import Logger from "~/utils/Logger";
|
||||
import { NotFoundError, OfflineError } from "~/utils/errors";
|
||||
import {
|
||||
NotFoundError,
|
||||
OfflineError,
|
||||
PaymentRequiredError,
|
||||
} from "~/utils/errors";
|
||||
import history from "~/utils/history";
|
||||
import { matchDocumentEdit, settingsPath } from "~/utils/routeHelpers";
|
||||
import Loading from "./Loading";
|
||||
@@ -195,7 +200,13 @@ function DataLoader({ match, children }: Props) {
|
||||
}, [can.read, can.update, document, isEditRoute, comments, team, shares, ui]);
|
||||
|
||||
if (error) {
|
||||
return error instanceof OfflineError ? <ErrorOffline /> : <Error404 />;
|
||||
return error instanceof OfflineError ? (
|
||||
<ErrorOffline />
|
||||
) : error instanceof PaymentRequiredError ? (
|
||||
<Error402 />
|
||||
) : (
|
||||
<Error404 />
|
||||
);
|
||||
}
|
||||
|
||||
if (!document || (revisionId && !revision)) {
|
||||
|
||||
26
app/scenes/Error402.tsx
Normal file
26
app/scenes/Error402.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import * as React from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useLocation } from "react-router-dom";
|
||||
import Empty from "~/components/Empty";
|
||||
import Notice from "~/components/Notice";
|
||||
import Scene from "~/components/Scene";
|
||||
|
||||
const Error402 = () => {
|
||||
const location = useLocation<{ title?: string }>();
|
||||
const { t } = useTranslation();
|
||||
const title = location.state?.title ?? t("Payment Required");
|
||||
|
||||
return (
|
||||
<Scene title={title}>
|
||||
<h1>{title}</h1>
|
||||
<Empty>
|
||||
<Notice>
|
||||
This document cannot be viewed with the current edition. Please
|
||||
upgrade to a paid license to restore access.
|
||||
</Notice>
|
||||
</Empty>
|
||||
</Scene>
|
||||
);
|
||||
};
|
||||
|
||||
export default Error402;
|
||||
Reference in New Issue
Block a user