/**
* Copyright (c) 2021 lingdocs.com
*
* This source code is licensed under the GPLv3 license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import { useState } from "react";
import { Route, Routes, useNavigate } from "react-router-dom";
import "./App.css";
import Page404 from "./pages/404";
import Chapter from "./components/Chapter";
import { content } from "./content/index";
import Sidebar from "./components/Sidebar";
import Header from "./components/Header";
import TableOfContentsPage from "./pages/TableOfContentsPage";
import LandingPage from "./pages/LandingPage";
import AccountPage from "./pages/AccountPage";
import { useEffect } from "react";
import { isProd } from "./lib/isProd";
import ReactGA from "react-ga";
import { useUser } from "./user-context";
import PrivacyPolicy from "./pages/PrivacyPolicy";
// import algoliasearch from "algoliasearch";
// const client = algoliasearch('M5GQZF38JA', '1e3b529b909acf72fde1515f520f3913');
// const index = client.initIndex('netlify_150beb8b-aae1-4cef-a05c-2add5d8904f7_master_all');
const chapters = content.reduce((chapters, item) => (
item.content
? [...chapters, item]
: [...chapters, ...item.chapters]
), []);
if (isProd) {
ReactGA.initialize("UA-196576671-2");
ReactGA.set({ anonymizeIp: true });
}
function App() {
const [navOpen, setNavOpen] = useState(false);
// const [search, setSearch] = useState("");
const navigate = useNavigate();
const { user } = useUser();
function logAnalytics() {
if (isProd && !(user?.admin)) {
ReactGA.pageview(window.location.pathname);
};
}
useEffect(() => {
logAnalytics();
if (window.location.pathname === "/") {
if (localStorage.getItem("visitedOnce")) {
navigate("/table-of-contents", { replace: true })
} else {
localStorage.setItem("visitedOnce", "true");
}
}
// eslint-disable-next-line
}, []);
useEffect(() => {
window.scroll(0, 0);
logAnalytics();
// eslint-disable-next-line
}, [window.location.pathname]);
// function handleSearch(s: string) {
// setSearch(s);
// index.search(s, {
// attributesToSnippet: [
// "content:20",
// ],
// }).then(({ hits }) => {
// console.log(hits);
// });
// }
return (
<>