Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

page.tsx 7.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. "use client";
  2. import { useState, useEffect } from 'react'
  3. import PageTitle from '@/components/ui/PageTitle';
  4. import { Typography, Button } from 'antd'
  5. import { CheckCircleOutlined, XOutlined } from '@ant-design/icons';
  6. const { Text, Title } = Typography;
  7. const basicPlan = [
  8. {
  9. available: true,
  10. text: "Manual Knowledge Entry"
  11. },
  12. {
  13. available: true,
  14. text: "Upload 5 Text Docs/months"
  15. },
  16. {
  17. available: false,
  18. text: "No Web Link Import"
  19. },
  20. {
  21. available: false,
  22. text: "No Image-to-text OCR"
  23. },
  24. {
  25. available: false,
  26. text: "No SOP Auto-Learning"
  27. },
  28. {
  29. available: true,
  30. text: "Max 10 Knowledge Sources"
  31. },
  32. {
  33. available: true,
  34. text: "Email Support"
  35. }
  36. ]
  37. const standardPlan = [
  38. {
  39. available: true,
  40. text: "Manual Knowledge Entry"
  41. },
  42. {
  43. available: true,
  44. text: "Upload 5 Text Docs/months"
  45. },
  46. {
  47. available: true,
  48. text: "No Web Link Import"
  49. },
  50. {
  51. available: true,
  52. text: "No Image-to-text OCR"
  53. },
  54. {
  55. available: false,
  56. text: "No SOP Auto-Learning"
  57. },
  58. {
  59. available: true,
  60. text: "Max 10 Knowledge Sources"
  61. },
  62. {
  63. available: true,
  64. text: "Email Support"
  65. }
  66. ]
  67. const premiumPlan = [
  68. {
  69. available: true,
  70. text: "Manual Knowledge Entry"
  71. },
  72. {
  73. available: true,
  74. text: "Upload 5 Text Docs/months"
  75. },
  76. {
  77. available: true,
  78. text: "No Web Link Import"
  79. },
  80. {
  81. available: true,
  82. text: "No Image-to-text OCR"
  83. },
  84. {
  85. available: true,
  86. text: "No SOP Auto-Learning"
  87. },
  88. {
  89. available: true,
  90. text: "Max 10 Knowledge Sources"
  91. },
  92. {
  93. available: true,
  94. text: "Email Support"
  95. }
  96. ]
  97. const CreatePersona: React.FC = () => {
  98. return (
  99. <div className="flex flex-col bg-white">
  100. <PageTitle title='PREMIUM PLAN' />
  101. <div className='p-4 px-8 flex flex-col gap-5'>
  102. <div className='border rounded-lg border-black flex flex-col overflow-hidden'>
  103. <div className='flex flex-col py-2 px-3'>
  104. <Title level={5}>Basic</Title>
  105. <div className='flex flex-row justify-between'>
  106. <div className='flex flex-row items-center gap-3'>
  107. <Title level={3} className='!m-0'>$5</Title>
  108. <div>
  109. <p className='p-0 text-xs font-semibold'>Per agent</p>
  110. <p className='p-0 text-xs font-semibold'>Per month</p>
  111. </div>
  112. </div>
  113. <div>
  114. <Button type='primary' className='!px-10 !font-bold'>Select</Button>
  115. </div>
  116. </div>
  117. </div>
  118. <div className='text-center border-y border-gray-200'>
  119. <p>ideal for simple, entry-level AI personas</p>
  120. </div>
  121. <div className='flex flex-col py-2 px-3 ps-10'>
  122. {basicPlan.map(({available, text}) => (
  123. <div>
  124. {(available) ? <CheckCircleOutlined className='!text-xs !align-middle !text-blue-800' /> : <XOutlined className='!text-xs !align-middle !text-red-800' />}
  125. <span className="ml-1 align-middle text-xs font-semibold">{text}</span>
  126. </div>
  127. ))}
  128. </div>
  129. </div>
  130. <div className='border rounded-lg border-black flex flex-col overflow-hidden'>
  131. <div className='flex flex-col py-2 px-3'>
  132. <Title level={5}>Standard</Title>
  133. <div className='flex flex-row justify-between'>
  134. <div className='flex flex-row items-center gap-3'>
  135. <Title level={3} className='!m-0'>$15</Title>
  136. <div>
  137. <p className='p-0 text-xs font-semibold'>Per agent</p>
  138. <p className='p-0 text-xs font-semibold'>Per month</p>
  139. </div>
  140. </div>
  141. <div>
  142. <Button type='primary' className='!px-10 !font-bold'>Select</Button>
  143. </div>
  144. </div>
  145. </div>
  146. <div className='text-center border-y border-gray-200'>
  147. <p>Perfect for growing AI needs</p>
  148. </div>
  149. <div className='flex flex-col py-2 px-3 ps-10'>
  150. {standardPlan.map(({available, text}) => (
  151. <div>
  152. {(available) ? <CheckCircleOutlined className='!text-xs !align-middle !text-blue-800' /> : <XOutlined className='!text-xs !align-middle !text-red-800' />}
  153. <span className="ml-1 align-middle text-xs font-semibold">{text}</span>
  154. </div>
  155. ))}
  156. </div>
  157. </div>
  158. <div className='border rounded-lg border-black flex flex-col overflow-hidden'>
  159. <div className='flex flex-col py-2 px-3'>
  160. <Title level={5}>Premium</Title>
  161. <div className='flex flex-row justify-between'>
  162. <div className='flex flex-row items-center gap-3'>
  163. <Title level={3} className='!m-0'>$45</Title>
  164. <div>
  165. <p className='p-0 text-xs font-semibold'>Per agent</p>
  166. <p className='p-0 text-xs font-semibold'>Per month</p>
  167. </div>
  168. </div>
  169. <div>
  170. <Button type='primary' className='!px-10 !font-bold'>Select</Button>
  171. </div>
  172. </div>
  173. </div>
  174. <div className='text-center border-y border-gray-200'>
  175. <p>Perfect for large enterprise AI model</p>
  176. </div>
  177. <div className='flex flex-col py-2 px-3 ps-10'>
  178. {premiumPlan.map(({available, text}) => (
  179. <div>
  180. {(available) ? <CheckCircleOutlined className='!text-xs !align-middle !text-blue-800' /> : <XOutlined className='!text-xs !align-middle !text-red-800' />}
  181. <span className="ml-1 align-middle text-xs font-semibold">{text}</span>
  182. </div>
  183. ))}
  184. </div>
  185. </div>
  186. </div>
  187. </div>
  188. )
  189. }
  190. export default CreatePersona