Ringtone app
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

72 строки
1.9 KiB

  1. import {FC, FormEventHandler} from 'react'
  2. import styled from 'styled-components'
  3. import {Session} from '@auth0/nextjs-auth0'
  4. import {models} from '@tonality/library-common'
  5. import CreateRingtoneForm from '../../organisms/forms/CreateRingtone'
  6. import BasicLayout from '../../organisms/presentation/BasicLayout';
  7. const Padding = styled('div')({
  8. margin: '2rem 0',
  9. })
  10. type Props = {
  11. onSearch?: FormEventHandler,
  12. onSubmit?: FormEventHandler,
  13. session: Partial<Session>,
  14. currentRingtone?: models.Ringtone,
  15. updateTempo?: ({ songRef, dataRef, setTempo, }) => (...args: unknown[]) => void,
  16. updateView?: ({ setNoteGlyph, setRestGlyph, noteGlyphs, restGlyphs, }) => (...args: unknown[]) => void,
  17. addRest?: ({ formRef, dataRef, songRef, }) => (...args: unknown[]) => void,
  18. addNote?: ({ dataRef, formRef, songRef, soundManagerRef, }) => (...args: unknown[]) => void,
  19. togglePlayback?: ({ formRef, songRef, soundManagerRef, setPlayTimestamp, setPlaying, }) => (...args: unknown[]) => void,
  20. updateSong?: ({ formRef, songRef, }) => (...args: unknown[]) => void,
  21. play?: ({ dataRef, playing, setPlaying, playTimestamp, }) => void,
  22. }
  23. const CreateRingtoneTemplate: FC<Props> = ({
  24. onSearch,
  25. onSubmit,
  26. session,
  27. currentRingtone = {},
  28. updateTempo,
  29. updateView,
  30. addRest,
  31. addNote,
  32. togglePlayback,
  33. updateSong,
  34. play,
  35. }) => {
  36. return (
  37. <BasicLayout
  38. onSearch={onSearch}
  39. session={session}
  40. >
  41. <Padding>
  42. <CreateRingtoneForm
  43. onSubmit={onSubmit}
  44. defaultValues={{
  45. ...currentRingtone,
  46. composerUserSub: session.user.sub,
  47. }}
  48. action="/api/a/create/ringtone"
  49. labels={{
  50. form: 'Create Ringtone',
  51. name: 'Name',
  52. data: 'Data',
  53. cta: 'Post',
  54. }}
  55. updateTempo={updateTempo}
  56. updateView={updateView}
  57. addRest={addRest}
  58. addNote={addNote}
  59. togglePlayback={togglePlayback}
  60. updateSong={updateSong}
  61. play={play}
  62. />
  63. </Padding>
  64. </BasicLayout>
  65. )
  66. }
  67. export default CreateRingtoneTemplate