Ringtone app
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

118 рядки
2.5 KiB

  1. import {FC, FormEventHandler} from 'react'
  2. import { LeftSidebarWithMenu } from '@tesseract-design/viewfinder'
  3. import {models} from '@tonality/library-common'
  4. import CreateRingtoneForm from '../../organisms/forms/CreateRingtone'
  5. import Link from '../../molecules/navigation/Link'
  6. import OmnisearchForm from '../../organisms/forms/Omnisearch'
  7. import Brand from '../../molecules/brand/Brand'
  8. type Props = {
  9. onSearch?: FormEventHandler,
  10. onSubmit?: FormEventHandler,
  11. composer: models.Composer,
  12. currentRingtone?: models.Ringtone,
  13. composerRingtones: models.Ringtone[],
  14. }
  15. const CreateRingtoneTemplate: FC<Props> = ({
  16. onSearch,
  17. onSubmit,
  18. composer,
  19. currentRingtone = {},
  20. composerRingtones = [],
  21. }) => {
  22. return (
  23. <LeftSidebarWithMenu.Layout
  24. brand={
  25. <Brand />
  26. }
  27. userLink={
  28. <div>
  29. User
  30. </div>
  31. }
  32. topBarCenter={
  33. <OmnisearchForm
  34. labels={{
  35. form: 'Search',
  36. query: 'Query',
  37. }}
  38. onSubmit={onSearch}
  39. action="/api/a/search"
  40. />
  41. }
  42. linkComponent={({ url, icon, label, }) => (
  43. <Link
  44. href={url}
  45. >
  46. <LeftSidebarWithMenu.SidebarMenuContainer>
  47. <LeftSidebarWithMenu.SidebarMenuItemIcon>
  48. {icon}
  49. </LeftSidebarWithMenu.SidebarMenuItemIcon>
  50. {label}
  51. </LeftSidebarWithMenu.SidebarMenuContainer>
  52. </Link>
  53. )}
  54. moreLinkMenuItem={{
  55. label: 'More',
  56. icon: 'M',
  57. url: {},
  58. }}
  59. moreLinkComponent={({ url, icon, label, }) => (
  60. <Link
  61. href={url}
  62. >
  63. <LeftSidebarWithMenu.MoreSidebarMenuContainer>
  64. <LeftSidebarWithMenu.MoreSidebarMenuItemIcon>
  65. {icon}
  66. </LeftSidebarWithMenu.MoreSidebarMenuItemIcon>
  67. {label}
  68. </LeftSidebarWithMenu.MoreSidebarMenuContainer>
  69. </Link>
  70. )}
  71. sidebarMenuItems={[
  72. {
  73. id: 'browse',
  74. label: 'Browse',
  75. icon: 'B',
  76. url: {
  77. pathname: '/ringtones',
  78. },
  79. },
  80. {
  81. id: 'compose',
  82. label: 'Compose',
  83. icon: 'C',
  84. url: {
  85. pathname: '/my/create/ringtone',
  86. },
  87. },
  88. ]}
  89. sidebarMain={
  90. <LeftSidebarWithMenu.SidebarMainContainer>
  91. Hi
  92. </LeftSidebarWithMenu.SidebarMainContainer>
  93. }
  94. >
  95. <LeftSidebarWithMenu.ContentContainer>
  96. <CreateRingtoneForm
  97. onSubmit={onSubmit}
  98. defaultValues={{
  99. ...currentRingtone,
  100. composerId: composer.id,
  101. }}
  102. action="/api/a/create/ringtone"
  103. labels={{
  104. form: 'Create Ringtone',
  105. name: 'Name',
  106. data: 'Data',
  107. cta: 'Post',
  108. }}
  109. />
  110. </LeftSidebarWithMenu.ContentContainer>
  111. </LeftSidebarWithMenu.Layout>
  112. )
  113. }
  114. export default CreateRingtoneTemplate