refactor: ♻️ refactor isHosted && type clean up (#3290)

* refactor: ♻️ refactor isHosted && type clean up

Change-Id: I4dfbad8a07607432801de78920ce42bf81e46498

* refactor: ♻️ code clean up

Change-Id: I8f487a33d332a2acaff84397a97371b56ace28a1

* feat: 💄 lint

Change-Id: I776b1a5e249bdb542f8e6da7cb2277821cf91094

* feat:  ci type

Change-Id: I486dde7bf60321238e9a394c40ad8cdb8bfc54c8

* feat: some code sugession

Change-Id: I4761d057344b95a98e99068d312a42292977875b
This commit is contained in:
忽如寄
2022-03-28 06:18:37 +08:00
committed by GitHub
parent f7b1f3ad6d
commit 9f400af73b
58 changed files with 131 additions and 161 deletions

View File

@@ -9,13 +9,17 @@ import useImportDocument from "~/hooks/useImportDocument";
import useToasts from "~/hooks/useToasts";
type Props = {
children: React.ReactNode;
disabled: boolean;
accept: string;
collectionId: string;
};
function DropToImport({ children, disabled, accept, collectionId }: Props) {
const DropToImport: React.FC<Props> = ({
children,
disabled,
accept,
collectionId,
}) => {
const { handleFiles, isImporting } = useImportDocument(collectionId);
const { showToast } = useToasts();
const { t } = useTranslation();
@@ -53,7 +57,7 @@ function DropToImport({ children, disabled, accept, collectionId }: Props) {
)}
</Dropzone>
);
}
};
const DropMessage = styled(Text)`
opacity: 0;

View File

@@ -3,7 +3,6 @@ import UiStore from "~/stores/UiStore";
type Props = {
ui: UiStore;
children?: React.ReactNode;
};
class HideSidebar extends React.Component<Props> {

View File

@@ -4,7 +4,6 @@ import Document from "~/models/Document";
const MARK_AS_VIEWED_AFTER = 3 * 1000;
type Props = {
document: Document;
children?: React.ReactNode;
};
class MarkAsViewed extends React.Component<Props> {

View File

@@ -6,7 +6,6 @@ type Props = {
documentId: string;
shareId: string;
sharedTree: NavigationNode | undefined;
children?: React.ReactNode;
};
function pathToDocument(
@@ -38,12 +37,12 @@ function pathToDocument(
return path;
}
const PublicBreadcrumb = ({
const PublicBreadcrumb: React.FC<Props> = ({
documentId,
shareId,
sharedTree,
children,
}: Props) => {
}) => {
const items: MenuInternalLink[] = React.useMemo(
() =>
pathToDocument(sharedTree, documentId)

View File

@@ -20,8 +20,7 @@ function ShareButton({ document }: Props) {
const share = shares.getByDocumentId(document.id);
const sharedParent = shares.getByDocumentParents(document.id);
const isPubliclyShared =
(share && share.published) ||
(sharedParent && sharedParent.published && !document.isDraft);
share?.published || (sharedParent?.published && !document.isDraft);
const popover = usePopoverState({
gutter: 0,

View File

@@ -3,7 +3,6 @@ import { USER_PRESENCE_INTERVAL } from "@shared/constants";
import { SocketContext } from "~/components/SocketProvider";
type Props = {
children?: React.ReactNode;
documentId: string;
isEditing: boolean;
};

View File

@@ -20,12 +20,11 @@ import env from "~/env";
import useQuery from "~/hooks/useQuery";
import useStores from "~/hooks/useStores";
import { isCustomDomain } from "~/utils/domains";
import isHosted from "~/utils/isHosted";
import { changeLanguage, detectLanguage } from "~/utils/language";
import Notices from "./Notices";
import Provider from "./Provider";
const isHosted = env.DEPLOYMENT === "hosted";
function Header({ config }: { config?: Config | undefined }) {
const { t } = useTranslation();
const isSubdomain = !!config?.hostname;
@@ -160,7 +159,7 @@ function Login() {
<Centered align="center" justify="center" column auto>
<PageTitle title={t("Login")} />
<Logo>
{env.TEAM_LOGO && env.DEPLOYMENT !== "hosted" ? (
{env.TEAM_LOGO && !isHosted ? (
<TeamLogo src={env.TEAM_LOGO} />
) : (
<OutlineLogo size={38} fill="currentColor" />

View File

@@ -13,6 +13,7 @@ import env from "~/env";
import useCurrentTeam from "~/hooks/useCurrentTeam";
import useStores from "~/hooks/useStores";
import useToasts from "~/hooks/useToasts";
import isHosted from "~/utils/isHosted";
import ImageInput from "./components/ImageInput";
import SettingRow from "./components/SettingRow";
@@ -133,7 +134,7 @@ function Details() {
/>
</SettingRow>
<SettingRow
visible={env.SUBDOMAINS_ENABLED && env.DEPLOYMENT === "hosted"}
visible={env.SUBDOMAINS_ENABLED && isHosted}
label={t("Subdomain")}
name="subdomain"
description={

View File

@@ -13,6 +13,7 @@ import env from "~/env";
import useCurrentUser from "~/hooks/useCurrentUser";
import useStores from "~/hooks/useStores";
import useToasts from "~/hooks/useToasts";
import isHosted from "~/utils/isHosted";
import SettingRow from "./components/SettingRow";
function Notifications() {
@@ -47,7 +48,7 @@ function Notifications() {
separator: true,
},
{
visible: env.DEPLOYMENT === "hosted",
visible: isHosted,
event: "emails.onboarding",
title: t("Getting started"),
description: t(
@@ -55,7 +56,7 @@ function Notifications() {
),
},
{
visible: env.DEPLOYMENT === "hosted",
visible: isHosted,
event: "emails.features",
title: t("New features"),
description: t("Receive an email when new features of note are added"),

View File

@@ -17,7 +17,6 @@ import { uploadFile, dataUrlToBlob } from "~/utils/files";
const EMPTY_OBJECT = {};
export type Props = {
children?: React.ReactNode;
onSuccess: (url: string) => void | Promise<void>;
onError: (error: string) => void;
submitText?: string;