});
});
}
-
-}
+
+ checkPresenceInFavorites(userUuid: string, resourceUuids: string[]): Promise<Record<string, boolean>> {
+ return this.linkService
+ .list({
+ filters: FilterBuilder
+ .create<LinkResource>()
+ .addIn("headUuid", resourceUuids)
+ .addEqual("tailUuid", userUuid)
+ .addEqual("linkClass", LinkClass.STAR)
+ })
+ .then(({ items }) => resourceUuids.reduce((results, uuid) => {
+ const isFavorite = items.some(item => item.headUuid === uuid);
+ return { ...results, [uuid]: isFavorite };
+ }, {}));
+ }
+
+}
import { projectPanelMiddleware } from './project-panel/project-panel-middleware';
import { detailsPanelReducer, DetailsPanelState } from './details-panel/details-panel-reducer';
import { contextMenuReducer, ContextMenuState } from './context-menu/context-menu-reducer';
+import { favoritePanelMiddleware } from "./favorite-panel/favorite-panel-middleware";
+ import { FavoritesState, favoritesReducer } from './favorites/favorites-reducer';
const composeEnhancers =
(process.env.NODE_ENV === 'development' &&
<div className={classes.content}>
<Switch>
<Route path="/projects/:id" render={this.renderProjectPanel} />
+ <Route path="/favorites" render={this.renderFavoritePanel} />
</Switch>
</div>
- { user && <DetailsPanel /> }
+ {user && <DetailsPanel />}
</main>
<ContextMenu />
<CreateProjectDialog />