Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,15 @@
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/images/communityFocus.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>Community Focus</title>
<!-- <meta name="description" content="Create a shareable timer for you and your friends!">
<meta name="image" content="https://raw.githubusercontent.com/CommunityFocus/cf-frontend/main/public/images/communityFocus-icon-meta.png"> -->

</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>

51 changes: 51 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"react-dom": "^18.2.0",
"react-dropdown": "^1.11.0",
"react-ga4": "^2.1.0",
"react-helmet-async": "^2.0.4",
"react-icons": "^4.10.1",
"react-loading": "^2.0.3",
"react-modal": "^3.16.1",
Expand Down
Binary file added public/images/communityFocus-icon-meta.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 14 additions & 1 deletion src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,14 @@ import ModalContext from "./components/Modal/ModalContext";
import UsernameContext from "./components/Username/UsernameContext";
import ValidRoom from "./Pages/Room/ValidRoom";
import DefaultRoom from "./Pages/DefaultRoom/DefaultRoom";
import { tracker } from "../common/common";
import { roomName, tracker } from "../common/common";
import { PublicRoom } from "./Pages/PublicRoom/PublicRoom";
import { HelmetProvider } from 'react-helmet-async';
import HelmetTags from "./helmet";


const App = (): JSX.Element => {

const [globalUsersConnected, setGlobalUsersConnected] = useState<number>(0);
const [isConnected, setIsConnected] = useState<boolean>(false);
const [isBreak, setIsBreak] = useState<boolean>(false);
Expand Down Expand Up @@ -73,7 +77,15 @@ const App = (): JSX.Element => {
}, []);

return (
<HelmetProvider>

<ThemeProvider theme={{ themeGroup, setThemeGroup }}>

<HelmetTags
title={userName}
description={roomName}
imageCard="https://raw.githubusercontent.com/CommunityFocus/cf-frontend/main/public/images/communityFocus-icon-meta.png"
/>
<UsernameContext.Provider
value={useMemo(
() => ({
Expand Down Expand Up @@ -183,6 +195,7 @@ const App = (): JSX.Element => {
</ModalContext.Provider>
</UsernameContext.Provider>
</ThemeProvider>
</HelmetProvider>
);
};

Expand Down
44 changes: 44 additions & 0 deletions src/helmet.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import { Helmet } from "react-helmet-async";
// import { roomName } from '../common/common';
// import image from "./public/images/communityFocus-icon-meta.png"

const HelmetTags = (props: {
title: string,
description: string,
imageCard: string
}): JSX.Element => {

const {
title,
description,
imageCard,
} = props;

let joinTitle = `Join ${title}'s Timer!`

return (
<>
<Helmet >
<meta name='description' content={description} />
<meta name="title" content={title} />
/* OG Tags */
<meta property="og:type" content="website" />
<meta property="og:url" content= "https://communityfocus.app" />
<meta property="og:title" content={joinTitle} />
<meta property="og:description" content={description} />
<meta property="og:image" content={imageCard} />

<meta property="og:image:width" content="38" />
<meta property="og:image:height" content="40" />

/* Twitter Card Meta Tags */
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://communityfocus.app/"/>
<meta property="twitter:title" content={joinTitle} />
<meta property="twitter:description" content={description} />
<meta property="twitter:image" content={imageCard}/>
</Helmet>
</>
);
};
export default HelmetTags;