notea/pages/settings.tsx

51 lines
1.5 KiB
TypeScript
Raw Normal View History

2021-03-22 16:32:59 +03:00
import LayoutMain from 'components/layout/layout-main'
2021-05-08 09:13:55 +03:00
import { NextPage } from 'next'
import { applyUA } from 'libs/server/middlewares/ua'
2021-03-22 16:32:59 +03:00
import { TreeModel } from 'libs/shared/tree'
2021-05-08 09:13:55 +03:00
import { useSession } from 'libs/server/middlewares/session'
import { applySettings } from 'libs/server/middlewares/settings'
import { applyAuth } from 'libs/server/middlewares/auth'
import { SettingsContainer } from 'components/settings/settings-container'
2021-04-25 15:06:38 +03:00
import useI18n from 'libs/web/hooks/use-i18n'
2021-05-08 09:13:55 +03:00
import { applyCsrf } from 'libs/server/middlewares/csrf'
2021-05-03 12:05:49 +03:00
import { SettingFooter } from 'components/settings/setting-footer'
2021-05-08 09:13:55 +03:00
import { SSRContext, ssr } from 'libs/server/connect'
2021-05-20 17:20:22 +03:00
import { applyReset } from 'libs/server/middlewares/reset'
2021-03-22 16:32:59 +03:00
const SettingsPage: NextPage<{ tree: TreeModel }> = ({ tree }) => {
2021-04-25 15:06:38 +03:00
const { t } = useI18n()
2021-03-22 16:32:59 +03:00
return (
<LayoutMain tree={tree}>
2021-05-03 12:05:49 +03:00
<section className="py-40 h-full overflow-y-auto">
<div className="px-6 prose m-auto">
<h1>
<span className="font-normal">{t('Settings')}</span>
</h1>
<SettingsContainer />
2021-05-03 12:05:49 +03:00
<SettingFooter />
</div>
</section>
2021-03-22 16:32:59 +03:00
</LayoutMain>
)
}
export default SettingsPage
2021-03-22 16:32:59 +03:00
2021-05-08 09:13:55 +03:00
export const getServerSideProps = async (ctx: SSRContext) => {
await ssr()
.use(useSession)
.use(applyAuth)
2021-05-20 17:20:22 +03:00
.use(applyReset)
2021-05-08 09:13:55 +03:00
.use(applySettings)
.use(applyCsrf)
.use(applyUA)
.run(ctx.req, ctx.res)
return {
props: ctx.req.props,
redirect: ctx.req.redirect,
}
}