|
@@ -3,31 +3,29 @@ import AddSvg from '../_shared/svg/AddSvg';
|
|
import { BoardCard } from './BoardCard';
|
|
import { BoardCard } from './BoardCard';
|
|
import { RowInfo } from '../../stores/effects/database/row/row_cache';
|
|
import { RowInfo } from '../../stores/effects/database/row/row_cache';
|
|
import { DatabaseController } from '../../stores/effects/database/database_controller';
|
|
import { DatabaseController } from '../../stores/effects/database/database_controller';
|
|
-import { RowPB } from '@/services/backend';
|
|
|
|
import { Droppable } from 'react-beautiful-dnd';
|
|
import { Droppable } from 'react-beautiful-dnd';
|
|
|
|
+import { DatabaseGroupController } from '$app/stores/effects/database/group/group_controller';
|
|
|
|
|
|
export const BoardBlock = ({
|
|
export const BoardBlock = ({
|
|
- groupId,
|
|
|
|
viewId,
|
|
viewId,
|
|
controller,
|
|
controller,
|
|
- title,
|
|
|
|
- rows,
|
|
|
|
allRows,
|
|
allRows,
|
|
onNewRowClick,
|
|
onNewRowClick,
|
|
|
|
+ onOpenRow,
|
|
|
|
+ group,
|
|
}: {
|
|
}: {
|
|
- groupId: string;
|
|
|
|
viewId: string;
|
|
viewId: string;
|
|
controller: DatabaseController;
|
|
controller: DatabaseController;
|
|
- title: string;
|
|
|
|
- rows: RowPB[];
|
|
|
|
allRows: readonly RowInfo[];
|
|
allRows: readonly RowInfo[];
|
|
onNewRowClick: () => void;
|
|
onNewRowClick: () => void;
|
|
|
|
+ onOpenRow: (rowId: RowInfo) => void;
|
|
|
|
+ group: DatabaseGroupController;
|
|
}) => {
|
|
}) => {
|
|
return (
|
|
return (
|
|
<div className={'flex h-full w-[250px] flex-col rounded-lg bg-surface-1'}>
|
|
<div className={'flex h-full w-[250px] flex-col rounded-lg bg-surface-1'}>
|
|
<div className={'flex items-center justify-between p-4'}>
|
|
<div className={'flex items-center justify-between p-4'}>
|
|
<div className={'flex items-center gap-2'}>
|
|
<div className={'flex items-center gap-2'}>
|
|
- <span>{title}</span>
|
|
|
|
|
|
+ <span>{group.name}</span>
|
|
<span className={'text-shade-4'}>()</span>
|
|
<span className={'text-shade-4'}>()</span>
|
|
</div>
|
|
</div>
|
|
<div className={'flex items-center gap-2'}>
|
|
<div className={'flex items-center gap-2'}>
|
|
@@ -39,17 +37,24 @@ export const BoardBlock = ({
|
|
</button>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <Droppable droppableId={groupId}>
|
|
|
|
|
|
+ <Droppable droppableId={group.groupId}>
|
|
{(provided) => (
|
|
{(provided) => (
|
|
<div
|
|
<div
|
|
className={'flex flex-1 flex-col gap-1 overflow-auto px-2'}
|
|
className={'flex flex-1 flex-col gap-1 overflow-auto px-2'}
|
|
{...provided.droppableProps}
|
|
{...provided.droppableProps}
|
|
ref={provided.innerRef}
|
|
ref={provided.innerRef}
|
|
>
|
|
>
|
|
- {rows.map((row_pb, index) => {
|
|
|
|
|
|
+ {group.rows.map((row_pb, index) => {
|
|
const row = allRows.find((r) => r.row.id === row_pb.id);
|
|
const row = allRows.find((r) => r.row.id === row_pb.id);
|
|
return row ? (
|
|
return row ? (
|
|
- <BoardCard viewId={viewId} controller={controller} index={index} key={index} rowInfo={row}></BoardCard>
|
|
|
|
|
|
+ <BoardCard
|
|
|
|
+ viewId={viewId}
|
|
|
|
+ controller={controller}
|
|
|
|
+ index={index}
|
|
|
|
+ key={index}
|
|
|
|
+ rowInfo={row}
|
|
|
|
+ onOpenRow={onOpenRow}
|
|
|
|
+ ></BoardCard>
|
|
) : (
|
|
) : (
|
|
<span key={index}></span>
|
|
<span key={index}></span>
|
|
);
|
|
);
|