* 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
37 lines
879 B
TypeScript
37 lines
879 B
TypeScript
import { observer } from "mobx-react";
|
|
import * as React from "react";
|
|
import { Helmet } from "react-helmet";
|
|
import { cdnPath } from "@shared/utils/urls";
|
|
import useStores from "~/hooks/useStores";
|
|
|
|
type Props = {
|
|
title: React.ReactNode;
|
|
favicon?: string;
|
|
};
|
|
|
|
const PageTitle = ({ title, favicon }: Props) => {
|
|
const { auth } = useStores();
|
|
const { team } = auth;
|
|
|
|
return (
|
|
<Helmet>
|
|
<title>
|
|
{team?.name ? `${title} - ${team.name}` : `${title} - Outline`}
|
|
</title>
|
|
{favicon ? (
|
|
<link rel="shortcut icon" href={favicon} />
|
|
) : (
|
|
<link
|
|
rel="shortcut icon"
|
|
type="image/png"
|
|
href={cdnPath("/favicon-32.png")}
|
|
sizes="32x32"
|
|
/>
|
|
)}
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
</Helmet>
|
|
);
|
|
};
|
|
|
|
export default observer(PageTitle);
|