settings.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { Flex } from "reflexbox/styled-components";
  2. import React, { useEffect } from "react";
  3. import { NextPage } from "next";
  4. import SettingsPassword from "../components/Settings/SettingsPassword";
  5. import SettingsDomain from "../components/Settings/SettingsDomain";
  6. import SettingsBan from "../components/Settings/SettingsBan";
  7. import SettingsApi from "../components/Settings/SettingsApi";
  8. import { useStoreState, useStoreActions } from "../store";
  9. import AppWrapper from "../components/AppWrapper";
  10. import { H1, Span } from "../components/Text";
  11. import Divider from "../components/Divider";
  12. import Footer from "../components/Footer";
  13. import { Col } from "../components/Layout";
  14. const SettingsPage: NextPage = props => {
  15. const { email, isAdmin } = useStoreState(s => s.auth);
  16. return (
  17. <AppWrapper>
  18. <Col width={600} maxWidth="90%" alignItems="flex-start" pb={80} mt={4}>
  19. <H1 alignItems="center" fontSize={[24, 28]} light>
  20. Welcome,{" "}
  21. <Span pb="2px" style={{ borderBottom: "2px dotted #999" }}>
  22. {email}
  23. </Span>
  24. .
  25. </H1>
  26. <Divider mt={4} mb={48} />
  27. {isAdmin && (
  28. <>
  29. <SettingsBan />
  30. <Divider mt={4} mb={48} />
  31. </>
  32. )}
  33. <SettingsDomain />
  34. <Divider mt={4} mb={48} />
  35. <SettingsPassword />
  36. <Divider mt={4} mb={48} />
  37. <SettingsApi />
  38. </Col>
  39. <Footer />
  40. </AppWrapper>
  41. );
  42. };
  43. export default SettingsPage;