feat: Add ability to star collection (#3327)
* Migrations, models, commands * ui * Move starred hint to location state * lint * tsc * refactor * Add collection empty state in expanded sidebar * Add empty placeholder within starred collections * Drag and drop improves, Relative refactor * fix: Starring untitled draft leaves empty space * fix: Creating draft in starred collection shouldnt open main * fix: Dupe drop cursor * Final fixes * fix: Canonical redirect replaces starred location state * fix: Don't show reorder cursor at the top of collection with no permission to edit when dragging
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { trim } from "lodash";
|
||||
import { action, computed, observable } from "mobx";
|
||||
import CollectionsStore from "~/stores/CollectionsStore";
|
||||
import BaseModel from "~/models/BaseModel";
|
||||
import Document from "~/models/Document";
|
||||
import { NavigationNode } from "~/types";
|
||||
@@ -7,6 +8,8 @@ import { client } from "~/utils/ApiClient";
|
||||
import Field from "./decorators/Field";
|
||||
|
||||
export default class Collection extends BaseModel {
|
||||
store: CollectionsStore;
|
||||
|
||||
@observable
|
||||
isSaving: boolean;
|
||||
|
||||
@@ -91,6 +94,13 @@ export default class Collection extends BaseModel {
|
||||
return !!trim(this.description, "\\").trim();
|
||||
}
|
||||
|
||||
@computed
|
||||
get isStarred(): boolean {
|
||||
return !!this.store.rootStore.stars.orderedData.find(
|
||||
(star) => star.collectionId === this.id
|
||||
);
|
||||
}
|
||||
|
||||
@action
|
||||
updateDocument(document: Document) {
|
||||
const travelNodes = (nodes: NavigationNode[]) =>
|
||||
@@ -167,6 +177,16 @@ export default class Collection extends BaseModel {
|
||||
return path || [];
|
||||
}
|
||||
|
||||
@action
|
||||
star = async () => {
|
||||
return this.store.star(this);
|
||||
};
|
||||
|
||||
@action
|
||||
unstar = async () => {
|
||||
return this.store.unstar(this);
|
||||
};
|
||||
|
||||
export = () => {
|
||||
return client.get("/collections.export", {
|
||||
id: this.id,
|
||||
|
||||
@@ -11,6 +11,8 @@ class Star extends BaseModel {
|
||||
|
||||
documentId: string;
|
||||
|
||||
collectionId: string;
|
||||
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user