-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Labels
good first issueGood for newcomersGood for newcomers
Description
Background
Currently, BoardRecord has a property favorite labeings whether a board is favorited by a user, but this it not robust when we need to support multiple users later (a board is favorited by multiple users). We'd better use a new collection board_favorites to store such relationships.
Actions
- remove
favoritekey fromBoardRecord, and all related stuff; - add a new collection
board_favorites, add a new fileBoardFavoritesCollectionin themodelsfolder - define inteface
BoardFavoriteRecordinterface { userId: string boardId: string }
- when user
starreda board, we add a new record to{ userId, boardId }toboard_favoritescollection - when user
unstarreda board, we remove this record - getFavoriteBoardsByUserId, is query { userId }
- Services & Subscriptions
4.1. add following public methods for clients to call
public starBoard(boardId: string): Promise<void> // we get userId with Meteor.userId() on server
public cancelStarBoard(boardId: string): Promise<void>
public getMineFavoriteBoards(): Promise<IBoard[]> // get favorite board ids in `board_favorites` and query boards in `boards`4.2 add BoardFavoritesSubscriber to subscribe changes to board_favorites
4.3 add global atom states to update state in favorites sidebar and top right bar
sources
- filled star icon svg :
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" preserveAspectRatio="xMidYMid meet" class="" style="vertical-align: middle;"><g fill="currentColor"><path d="M8 0.350006C8.30049 0.350006 8.57286 0.526798 8.6952 0.801258L10.6192 5.11752L15.3187 5.61353C15.6176 5.64507 15.8699 5.84948 15.9627 6.13526C16.0556 6.42104 15.9716 6.73471 15.7484 6.93588L12.2379 10.0995L13.2184 14.7223C13.2808 15.0163 13.1643 15.3194 12.9212 15.496C12.6781 15.6726 12.3539 15.6897 12.0936 15.5396L8 13.1785L3.90643 15.5396C3.64614 15.6897 3.32187 15.6726 3.07877 15.496C2.83567 15.3194 2.71923 15.0163 2.78158 14.7223L3.76209 10.0995L0.251619 6.93588C0.0283977 6.73471 -0.0555759 6.42104 0.0372811 6.13526C0.130138 5.84948 0.382443 5.64507 0.681275 5.61353L5.38083 5.11752L7.3048 0.801258C7.42714 0.526798 7.69951 0.350006 8 0.350006Z"></path></g></svg>
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomers