Ringtone app
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

48 行
1.1 KiB

  1. import {GetServerSideProps, NextPage} from 'next'
  2. import {useRef} from 'react'
  3. import {models} from '@tonality/library-common'
  4. import CreateRingtoneTemplate from '../../../../components/templates/CreateRingtone'
  5. import RingtoneClient from '../../../../modules/ringtone/client'
  6. import {getSession, withPageAuthRequired} from '@auth0/nextjs-auth0';
  7. type Props = {
  8. user: models.Composer,
  9. composerRingtones: models.Ringtone[],
  10. }
  11. const MyCreateRingtonePage: NextPage<Props> = ({
  12. user,
  13. composerRingtones,
  14. }) => {
  15. const ringtoneClient = useRef(new RingtoneClient())
  16. return (
  17. <CreateRingtoneTemplate
  18. composer={user}
  19. composerRingtones={composerRingtones}
  20. onSubmit={ringtoneClient.current.save}
  21. />
  22. )
  23. }
  24. export const getServerSideProps: GetServerSideProps = withPageAuthRequired({
  25. getServerSideProps: async (ctx) => {
  26. const session = getSession(ctx.req, ctx.res)
  27. const { user } = session
  28. const composerRingtones = []
  29. return {
  30. props: {
  31. user: {
  32. id: user.sub,
  33. name: user.nickname,
  34. bio: '',
  35. },
  36. composerRingtones,
  37. },
  38. }
  39. },
  40. returnTo: '/my/create/ringtone'
  41. })
  42. export default MyCreateRingtonePage