import { TreePicker, TreePickerProps } from "../tree-picker/tree-picker";
import { TreeItem, TreeItemStatus } from "~/components/tree/tree";
import { ProjectResource } from "~/models/project";
-import { treePickerActions, loadProjectTreePickerProjects, loadFavoriteTreePickerProjects } from "~/store/tree-picker/tree-picker-actions";
+import { treePickerActions, loadProjectTreePickerProjects, loadFavoriteTreePickerProjects, loadPublicFavoriteTreePickerProjects } from "~/store/tree-picker/tree-picker-actions";
import { ListItemTextIcon } from "~/components/list-item-text-icon/list-item-text-icon";
-import { ProjectIcon, FavoriteIcon, ProjectsIcon, ShareMeIcon } from "~/components/icon/icon";
+import { ProjectIcon, FavoriteIcon, ProjectsIcon, ShareMeIcon, PublicFavoriteIcon } from '~/components/icon/icon';
import { RootState } from "~/store/store";
import { ServiceRepository } from "~/services/services";
import { WrappedFieldProps } from 'redux-form';
dispatch<any>(loadProjectTreePickerProjects(id));
} else if (pickerId === TreePickerId.FAVORITES) {
dispatch<any>(loadFavoriteTreePickerProjects(id === services.authService.getUuid() ? '' : id));
- } else {
+ } else if (pickerId === TreePickerId.PUBLIC_FAVORITES) {
+ dispatch<any>(loadPublicFavoriteTreePickerProjects(id === services.authService.getUuid() ? '' : id));
// TODO: load sharedWithMe
}
} else {
<TreePicker {...props} render={renderTreeItem} pickerId={TreePickerId.PROJECTS} />
<TreePicker {...props} render={renderTreeItem} pickerId={TreePickerId.SHARED_WITH_ME} />
<TreePicker {...props} render={renderTreeItem} pickerId={TreePickerId.FAVORITES} />
+ <TreePicker {...props} render={renderTreeItem} pickerId={TreePickerId.PUBLIC_FAVORITES} />
</div>
</div>);
return ProjectsIcon;
case TreePickerId.SHARED_WITH_ME:
return ShareMeIcon;
+ case TreePickerId.PUBLIC_FAVORITES:
+ return PublicFavoriteIcon;
default:
return ProjectIcon;
}
const handleChange = (props: WrappedFieldProps) =>
(_: any, { id }: TreeItem<ProjectsTreePickerItem>) =>
props.input.onChange(id);
+
+export const CollectionTreePickerField = (props: WrappedFieldProps & PickerIdProp) =>
+ <div style={{ height: '200px', display: 'flex', flexDirection: 'column' }}>
+ <ProjectsTreePicker
+ pickerId={props.pickerId}
+ toggleItemActive={handleChange(props)}
+ includeCollections />
+ {props.meta.dirty && props.meta.error &&
+ <Typography variant='caption' color='error'>
+ {props.meta.error}
+ </Typography>}
+ </div>;
\ No newline at end of file