mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-25 20:40:36 +03:00
R: Move LibraryItem editor to proper feature
This commit is contained in:
parent
c9da647226
commit
fd6295f279
|
@ -13,7 +13,7 @@ const DlgCreateVersion = React.lazy(() => import('@/features/rsform/dialogs/DlgC
|
|||
const DlgCstTemplate = React.lazy(() => import('@/features/rsform/dialogs/DlgCstTemplate'));
|
||||
const DlgDeleteCst = React.lazy(() => import('@/features/rsform/dialogs/DlgDeleteCst'));
|
||||
const DlgDeleteOperation = React.lazy(() => import('@/features/oss/dialogs/DlgDeleteOperation'));
|
||||
const DlgEditEditors = React.lazy(() => import('@/features/rsform/dialogs/DlgEditEditors'));
|
||||
const DlgEditEditors = React.lazy(() => import('@/features/library/dialogs/DlgEditEditors'));
|
||||
const DlgEditOperation = React.lazy(() => import('@/features/oss/dialogs/DlgEditOperation'));
|
||||
const DlgEditReference = React.lazy(() => import('@/features/rsform/dialogs/DlgEditReference'));
|
||||
const DlgEditVersions = React.lazy(() => import('@/features/rsform/dialogs/DlgEditVersions'));
|
||||
|
|
|
@ -16,13 +16,8 @@ import {
|
|||
import { Loader } from '@/components/Loader';
|
||||
import { CProps } from '@/components/props';
|
||||
import { ValueIcon } from '@/components/View';
|
||||
import { useMutatingLibrary } from '@/features/library/backend/useMutatingLibrary';
|
||||
import { useSetEditors } from '@/features/library/backend/useSetEditors';
|
||||
import { useSetLocation } from '@/features/library/backend/useSetLocation';
|
||||
import { useSetOwner } from '@/features/library/backend/useSetOwner';
|
||||
import { ILibraryItemEditor } from '@/features/library/models/library';
|
||||
import { useLibrarySearchStore } from '@/features/library/stores/librarySearch';
|
||||
import { useLabelUser } from '@/features/users/backend/useLabelUser';
|
||||
import { InfoUsers } from '@/features/users/components/InfoUsers';
|
||||
import { SelectUser } from '@/features/users/components/SelectUser';
|
||||
import { UserID, UserRole } from '@/features/users/models/user';
|
||||
import { useDialogsStore } from '@/stores/dialogs';
|
||||
|
@ -31,13 +26,17 @@ import { useRoleStore } from '@/stores/role';
|
|||
import { prefixes } from '@/utils/constants';
|
||||
import { promptText } from '@/utils/labels';
|
||||
|
||||
import InfoUsers from './InfoUsers';
|
||||
import { useMutatingLibrary } from '../backend/useMutatingLibrary';
|
||||
import { useSetLocation } from '../backend/useSetLocation';
|
||||
import { useSetOwner } from '../backend/useSetOwner';
|
||||
import { ILibraryItemEditor } from '../models/library';
|
||||
import { useLibrarySearchStore } from '../stores/librarySearch';
|
||||
|
||||
interface EditorLibraryItemProps {
|
||||
controller: ILibraryItemEditor;
|
||||
}
|
||||
|
||||
function EditorLibraryItem({ controller }: EditorLibraryItemProps) {
|
||||
export function EditorLibraryItem({ controller }: EditorLibraryItemProps) {
|
||||
const getUserLabel = useLabelUser();
|
||||
const role = useRoleStore(state => state.role);
|
||||
const intl = useIntl();
|
||||
|
@ -49,7 +48,6 @@ function EditorLibraryItem({ controller }: EditorLibraryItemProps) {
|
|||
|
||||
const { setOwner } = useSetOwner();
|
||||
const { setLocation } = useSetLocation();
|
||||
const { setEditors } = useSetEditors();
|
||||
|
||||
const showEditEditors = useDialogsStore(state => state.showEditEditors);
|
||||
const showEditLocation = useDialogsStore(state => state.showChangeLocation);
|
||||
|
@ -80,8 +78,8 @@ function EditorLibraryItem({ controller }: EditorLibraryItemProps) {
|
|||
|
||||
function handleEditEditors() {
|
||||
showEditEditors({
|
||||
editors: controller.schema.editors,
|
||||
onChangeEditors: newEditors => void setEditors({ itemID: controller.schema.id, editors: newEditors })
|
||||
itemID: controller.schema.id,
|
||||
initial: controller.schema.editors
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -163,5 +161,3 @@ function EditorLibraryItem({ controller }: EditorLibraryItemProps) {
|
|||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default EditorLibraryItem;
|
|
@ -12,21 +12,24 @@ import { SelectUser } from '@/features/users/components/SelectUser';
|
|||
import { UserID } from '@/features/users/models/user';
|
||||
import { useDialogsStore } from '@/stores/dialogs';
|
||||
|
||||
import { useSetEditors } from '../../backend/useSetEditors';
|
||||
import { LibraryItemID } from '../../models/library';
|
||||
import TableUsers from './TableUsers';
|
||||
|
||||
export interface DlgEditEditorsProps {
|
||||
editors: UserID[];
|
||||
onChangeEditors: (newValue: UserID[]) => void;
|
||||
itemID: LibraryItemID;
|
||||
initial: UserID[];
|
||||
}
|
||||
|
||||
function DlgEditEditors() {
|
||||
const { editors, onChangeEditors } = useDialogsStore(state => state.props as DlgEditEditorsProps);
|
||||
const [selected, setSelected] = useState<UserID[]>(editors);
|
||||
const { initial, itemID } = useDialogsStore(state => state.props as DlgEditEditorsProps);
|
||||
const { setEditors } = useSetEditors();
|
||||
|
||||
const [selected, setSelected] = useState<UserID[]>(initial);
|
||||
const { users } = useUsers();
|
||||
|
||||
function handleSubmit() {
|
||||
onChangeEditors(selected);
|
||||
return true;
|
||||
void setEditors({ itemID: itemID, editors: selected });
|
||||
}
|
||||
|
||||
function onDeleteEditor(target: UserID) {
|
|
@ -3,8 +3,7 @@
|
|||
import clsx from 'clsx';
|
||||
|
||||
import { FlexColumn } from '@/components/Container';
|
||||
// TODO: reconsider this dependency
|
||||
import EditorLibraryItem from '@/features/rsform/pages/RSFormPage/EditorRSFormCard/EditorLibraryItem';
|
||||
import { EditorLibraryItem } from '@/features/library/components/EditorLibraryItem';
|
||||
import ToolbarRSFormCard from '@/features/rsform/pages/RSFormPage/EditorRSFormCard/ToolbarRSFormCard';
|
||||
import { useModificationStore } from '@/stores/modification';
|
||||
import { globals } from '@/utils/constants';
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
import clsx from 'clsx';
|
||||
|
||||
import { FlexColumn } from '@/components/Container';
|
||||
import { EditorLibraryItem } from '@/features/library/components/EditorLibraryItem';
|
||||
import { useModificationStore } from '@/stores/modification';
|
||||
import { globals } from '@/utils/constants';
|
||||
|
||||
import { useRSEdit } from '../RSEditContext';
|
||||
import EditorLibraryItem from './EditorLibraryItem';
|
||||
import FormRSForm from './FormRSForm';
|
||||
import RSFormStats from './RSFormStats';
|
||||
import ToolbarRSFormCard from './ToolbarRSFormCard';
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import clsx from 'clsx';
|
||||
|
||||
import { CProps } from '@/components/props';
|
||||
import { useLabelUser } from '@/features/users/backend/useLabelUser';
|
||||
import { UserID } from '@/features/users/models/user';
|
||||
|
||||
import { useLabelUser } from '../backend/useLabelUser';
|
||||
import { UserID } from '../models/user';
|
||||
|
||||
interface InfoUsersProps extends CProps.Styling {
|
||||
items: UserID[];
|
||||
|
@ -10,7 +11,7 @@ interface InfoUsersProps extends CProps.Styling {
|
|||
header?: string;
|
||||
}
|
||||
|
||||
function InfoUsers({ items, className, prefix, header, ...restProps }: InfoUsersProps) {
|
||||
export function InfoUsers({ items, className, prefix, header, ...restProps }: InfoUsersProps) {
|
||||
const getUserLabel = useLabelUser();
|
||||
return (
|
||||
<div className={clsx('flex flex-col dense', className)} {...restProps}>
|
||||
|
@ -22,5 +23,3 @@ function InfoUsers({ items, className, prefix, header, ...restProps }: InfoUsers
|
|||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default InfoUsers;
|
|
@ -1,6 +1,7 @@
|
|||
import { create } from 'zustand';
|
||||
|
||||
import { DlgChangeLocationProps } from '@/features/library/dialogs/DlgChangeLocation';
|
||||
import { DlgEditEditorsProps } from '@/features/library/dialogs/DlgEditEditors/DlgEditEditors';
|
||||
import { DlgChangeInputSchemaProps } from '@/features/oss/dialogs/DlgChangeInputSchema';
|
||||
import { DlgCreateOperationProps } from '@/features/oss/dialogs/DlgCreateOperation/DlgCreateOperation';
|
||||
import { DlgDeleteOperationProps } from '@/features/oss/dialogs/DlgDeleteOperation';
|
||||
|
@ -11,7 +12,6 @@ import { DlgCreateCstProps } from '@/features/rsform/dialogs/DlgCreateCst/DlgCre
|
|||
import { DlgCreateVersionProps } from '@/features/rsform/dialogs/DlgCreateVersion';
|
||||
import { DlgCstTemplateProps } from '@/features/rsform/dialogs/DlgCstTemplate/DlgCstTemplate';
|
||||
import { DlgDeleteCstProps } from '@/features/rsform/dialogs/DlgDeleteCst/DlgDeleteCst';
|
||||
import { DlgEditEditorsProps } from '@/features/rsform/dialogs/DlgEditEditors/DlgEditEditors';
|
||||
import { DlgEditReferenceProps } from '@/features/rsform/dialogs/DlgEditReference/DlgEditReference';
|
||||
import { DlgEditVersionsProps } from '@/features/rsform/dialogs/DlgEditVersions/DlgEditVersions';
|
||||
import { DlgEditWordFormsProps } from '@/features/rsform/dialogs/DlgEditWordForms/DlgEditWordForms';
|
||||
|
|
Loading…
Reference in New Issue
Block a user