GridTableHeader.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { DatabaseController } from '@/appflowy_app/stores/effects/database/database_controller';
  2. import AddSvg from '../../_shared/svg/AddSvg';
  3. import { useGridTableHeaderHooks } from './GridTableHeader.hooks';
  4. import { GridTableHeaderItem } from './GridTableHeaderItem';
  5. import { useTranslation } from 'react-i18next';
  6. export const GridTableHeader = ({ controller }: { controller: DatabaseController }) => {
  7. const { fields, onAddField } = useGridTableHeaderHooks(controller);
  8. const { t } = useTranslation();
  9. return (
  10. <>
  11. <thead>
  12. <tr>
  13. {fields.map((field, i) => {
  14. return <GridTableHeaderItem field={field} controller={controller} key={i} />;
  15. })}
  16. <th className='m-0 w-40 border border-r-0 border-line-divider p-0'>
  17. <div
  18. className='flex cursor-pointer items-center px-4 py-2 text-text-caption hover:bg-fill-list-hover hover:text-text-title'
  19. onClick={onAddField}
  20. >
  21. <i className='mr-2 h-5 w-5'>
  22. <AddSvg />
  23. </i>
  24. <span>{t('grid.field.newProperty')}</span>
  25. </div>
  26. </th>
  27. </tr>
  28. </thead>
  29. </>
  30. );
  31. };