feat: row document (#2792)

* chore: create orphan view handler

* feat: save icon url and cover url in view

* feat: implement emoji picker UI

* chore: config ui

* chore: config ui again

* chore: replace RowPB with RowMetaPB to exposing more row information

* fix: compile error

* feat: show emoji in row

* chore: update

* test: insert emoji test

* test: add update emoji test

* test: add remove emoji test

* test: add create field tests

* test: add create row and delete row integration tests

* test: add create row from row menu

* test: document in row detail page

* test: delete, duplicate row in row detail page

* test: check the row count displayed in grid page

* test: rename existing field in grid page

* test: update field type of exisiting field in grid page

* test: delete field test

* test: add duplicate field test

* test: add hide field test

* test: add edit text cell test

* test: add insert text to text cell test

* test: add edit number cell test

* test: add edit multiple number cells

* test: add edit checkbox cell test

* feat: integrate editor into database row

* test: add edit create time and last edit time cell test

* test: add edit date cell by selecting a date test

* chore: remove unused code

* chore: update checklist bg color

* test: add update database layout test

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
This commit is contained in:
Nathan.fooo
2023-06-14 22:16:33 +08:00
committed by GitHub
parent b8983e4466
commit 27dd719aa8
145 changed files with 4414 additions and 1366 deletions

View File

@ -106,13 +106,14 @@ class BoardTestContext {
final rowDataController = RowController(
viewId: rowInfo.viewId,
rowId: rowInfo.rowPB.id,
rowMeta: rowInfo.rowMeta,
rowCache: rowCache,
);
final rowBloc = RowBloc(
rowInfo: rowInfo,
viewId: rowInfo.viewId,
dataController: rowDataController,
rowId: rowInfo.rowMeta.id,
)..add(const RowEvent.initial());
await gridResponseFuture();

View File

@ -63,16 +63,16 @@ void main() {
act: (bloc) async {
await gridResponseFuture();
firstId = bloc.state.rowInfos[0].rowPB.id;
secondId = bloc.state.rowInfos[1].rowPB.id;
thirdId = bloc.state.rowInfos[2].rowPB.id;
firstId = bloc.state.rowInfos[0].rowId;
secondId = bloc.state.rowInfos[1].rowId;
thirdId = bloc.state.rowInfos[2].rowId;
bloc.add(const GridEvent.moveRow(0, 2));
},
verify: (bloc) {
expect(secondId, bloc.state.rowInfos[0].rowPB.id);
expect(thirdId, bloc.state.rowInfos[1].rowPB.id);
expect(firstId, bloc.state.rowInfos[2].rowPB.id);
expect(secondId, bloc.state.rowInfos[0].rowId);
expect(thirdId, bloc.state.rowInfos[1].rowId);
expect(firstId, bloc.state.rowInfos[2].rowId);
},
);
});

View File

@ -35,7 +35,7 @@ class GridTestContext {
return gridController.fieldController;
}
Future<Either<RowPB, FlowyError>> createRow() async {
Future<Either<RowMetaPB, FlowyError>> createRow() async {
return gridController.createRow();
}
@ -55,14 +55,15 @@ class GridTestContext {
final rowCache = gridController.rowCache;
final rowDataController = RowController(
rowId: rowInfo.rowPB.id,
rowMeta: rowInfo.rowMeta,
viewId: rowInfo.viewId,
rowCache: rowCache,
);
final rowBloc = RowBloc(
rowInfo: rowInfo,
viewId: rowInfo.viewId,
dataController: rowDataController,
rowId: rowInfo.rowMeta.id,
)..add(const RowEvent.initial());
await gridResponseFuture();