R: Remove index files from components
This commit is contained in:
parent
f365b20814
commit
9b6a014fb3
|
@ -1,7 +1,7 @@
|
|||
'use client';
|
||||
|
||||
import { type HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
|
||||
import { useEscapeKey } from '@/hooks/use-escape-key';
|
||||
import { useDialogsStore } from '@/stores/dialogs';
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import clsx from 'clsx';
|
||||
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
|
||||
import { useEscapeKey } from '@/hooks/use-escape-key';
|
||||
import { useDialogsStore } from '@/stores/dialogs';
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
export { ExpectedAnonymous } from './expected-anonymous';
|
||||
export { RequireAuth } from './require-auth';
|
|
@ -1 +1 @@
|
|||
export { BadgeHelp } from './badge-help';
|
||||
|
|
@ -15,17 +15,17 @@ import { HelpTopic } from '../../models/help-topic';
|
|||
export function HelpRSCard() {
|
||||
return (
|
||||
<div className='dense'>
|
||||
<h1>Карточка схемы</h1>
|
||||
<h1>Паспорт схемы</h1>
|
||||
|
||||
<p>Карточка содержит общую информацию и статистику</p>
|
||||
<p>Паспорт содержит общую информацию и статистику</p>
|
||||
<p>
|
||||
Карточка позволяет управлять атрибутами и <LinkTopic text='версиями' topic={HelpTopic.VERSIONS} />
|
||||
Паспорт позволяет управлять атрибутами и <LinkTopic text='версиями' topic={HelpTopic.VERSIONS} />
|
||||
</p>
|
||||
<p>
|
||||
Карточка позволяет назначать <IconEditor className='inline-icon' /> Редакторов
|
||||
Паспорт позволяет назначать <IconEditor className='inline-icon' /> Редакторов
|
||||
</p>
|
||||
<p>
|
||||
Карточка позволяет изменить <IconOwner className='inline-icon icon-green' /> Владельца
|
||||
Паспорт позволяет изменить <IconOwner className='inline-icon icon-green' /> Владельца
|
||||
</p>
|
||||
|
||||
<h2>Управление</h2>
|
||||
|
|
|
@ -32,18 +32,17 @@ export function HelpRSMenu() {
|
|||
<h2>Вкладки</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<LinkTopic text='Карточка' topic={HelpTopic.UI_RS_CARD} /> – редактирование атрибутов схемы и версии
|
||||
<LinkTopic text='Паспорт' topic={HelpTopic.UI_RS_CARD} /> – редактирование атрибутов схемы и версии
|
||||
</li>
|
||||
<li>
|
||||
<LinkTopic text='Содержание' topic={HelpTopic.UI_RS_LIST} /> – работа со списком конституент в табличной форме
|
||||
<LinkTopic text='Список' topic={HelpTopic.UI_RS_LIST} /> – работа со списком конституент в табличной форме
|
||||
</li>
|
||||
<li>
|
||||
<LinkTopic text='Редактор' topic={HelpTopic.UI_RS_EDITOR} /> – редактирование отдельной{' '}
|
||||
<LinkTopic text='Понятие' topic={HelpTopic.UI_RS_EDITOR} /> – редактирование отдельной{' '}
|
||||
<LinkTopic text='Конституенты' topic={HelpTopic.CC_CONSTITUENTA} />
|
||||
</li>
|
||||
<li>
|
||||
<LinkTopic text='Граф термов' topic={HelpTopic.UI_GRAPH_TERM} /> – графическое представление связей
|
||||
конституент
|
||||
<LinkTopic text='Граф' topic={HelpTopic.UI_GRAPH_TERM} /> – графическое представление связей конституент
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ export function labelHelpTopic(topic: HelpTopic): string {
|
|||
case HelpTopic.INTERFACE: return '🌀 Интерфейс';
|
||||
case HelpTopic.UI_LIBRARY: return 'Библиотека';
|
||||
case HelpTopic.UI_RS_MENU: return 'Меню схемы';
|
||||
case HelpTopic.UI_RS_CARD: return 'Карточка схемы';
|
||||
case HelpTopic.UI_RS_CARD: return 'Паспорт схемы';
|
||||
case HelpTopic.UI_RS_LIST: return 'Список конституент';
|
||||
case HelpTopic.UI_RS_EDITOR: return 'Редактор конституенты';
|
||||
case HelpTopic.UI_GRAPH_TERM: return 'Граф термов';
|
||||
|
|
|
@ -3,7 +3,8 @@ import { useIntl } from 'react-intl';
|
|||
|
||||
import { urls, useConceptNavigation } from '@/app';
|
||||
import { useLabelUser, useRoleStore, UserRole } from '@/features/users';
|
||||
import { InfoUsers, SelectUser } from '@/features/users/components';
|
||||
import { InfoUsers } from '@/features/users/components/info-users';
|
||||
import { SelectUser } from '@/features/users/components/select-user';
|
||||
|
||||
import { Tooltip } from '@/components/container';
|
||||
import { MiniButton } from '@/components/control';
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
export { EditorLibraryItem } from './editor-library-item';
|
||||
export { MenuRole } from './menu-role';
|
||||
export { MiniSelectorOSS } from './mini-selector-oss';
|
||||
export { PickSchema } from './pick-schema';
|
||||
export { SelectLibraryItem } from './select-library-item';
|
||||
export { SelectVersion } from './select-version';
|
||||
export { ToolbarItemAccess } from './toolbar-item-access';
|
||||
export { ToolbarItemCard } from './toolbar-item-card';
|
|
@ -1,7 +1,7 @@
|
|||
import clsx from 'clsx';
|
||||
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
import { useRoleStore, UserRole } from '@/features/users';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import { urls, useConceptNavigation } from '@/app';
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
import { type IRSForm } from '@/features/rsform';
|
||||
import { useRoleStore, UserRole } from '@/features/users';
|
||||
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
import { useState } from 'react';
|
||||
|
||||
import { useUsers } from '@/features/users';
|
||||
import { SelectUser, TableUsers } from '@/features/users/components';
|
||||
import { SelectUser } from '@/features/users/components/select-user';
|
||||
import { TableUsers } from '@/features/users/components/table-users';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
import { IconRemove } from '@/components/icons';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { RequireAuth } from '@/features/auth/components';
|
||||
import { RequireAuth } from '@/features/auth/components/require-auth';
|
||||
|
||||
import { FormCreateItem } from './form-create-item';
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
import clsx from 'clsx';
|
||||
|
||||
import { SelectUser } from '@/features/users/components';
|
||||
import { SelectUser } from '@/features/users/components/select-user';
|
||||
|
||||
import { MiniButton, SelectorButton } from '@/components/control';
|
||||
import { Dropdown, DropdownButton, useDropdown } from '@/components/dropdown';
|
||||
|
|
|
@ -3,7 +3,7 @@ import clsx from 'clsx';
|
|||
|
||||
import { useAuthSuspense } from '@/features/auth';
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
import { IconFolderEdit, IconFolderTree } from '@/components/icons';
|
||||
|
|
|
@ -5,7 +5,7 @@ import { zodResolver } from '@hookform/resolvers/zod';
|
|||
|
||||
import { type ILibraryItem, LibraryItemType } from '@/features/library';
|
||||
import { useLibrary } from '@/features/library/backend/use-library';
|
||||
import { PickSchema } from '@/features/library/components';
|
||||
import { PickSchema } from '@/features/library/components/pick-schema';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
import { IconReset } from '@/components/icons';
|
||||
|
|
|
@ -86,7 +86,7 @@ export function DlgCreateBlock() {
|
|||
>
|
||||
<Tabs className='grid' selectedIndex={activeTab} onSelect={index => setActiveTab(index as TabID)}>
|
||||
<TabList className='z-pop mx-auto -mb-5 flex border divide-x rounded-none'>
|
||||
<TabLabel title='Основные атрибуты блока' label='Карточка' />
|
||||
<TabLabel title='Основные атрибуты блока' label='Паспорт' />
|
||||
<TabLabel
|
||||
title={`Выбор вложенных узлов: [${children_operations.length + children_blocks.length}]`}
|
||||
label={`Содержимое${children_operations.length + children_blocks.length > 0 ? '*' : ''}`}
|
||||
|
|
|
@ -4,7 +4,7 @@ import { Controller, useFormContext, useWatch } from 'react-hook-form';
|
|||
|
||||
import { type ILibraryItem, LibraryItemType } from '@/features/library';
|
||||
import { useLibrary } from '@/features/library/backend/use-library';
|
||||
import { PickSchema } from '@/features/library/components';
|
||||
import { PickSchema } from '@/features/library/components/pick-schema';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
import { IconReset } from '@/components/icons';
|
||||
|
|
|
@ -79,7 +79,7 @@ export function DlgEditOperation() {
|
|||
<TabList className='mb-3 mx-auto w-fit flex border divide-x rounded-none'>
|
||||
<TabLabel
|
||||
title='Текстовые поля' //
|
||||
label='Карточка'
|
||||
label='Паспорт'
|
||||
className='w-32'
|
||||
/>
|
||||
<TabLabel
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import { Controller, useFormContext, useWatch } from 'react-hook-form';
|
||||
|
||||
import { useRSForms } from '@/features/rsform/backend/use-rsforms';
|
||||
import { PickSubstitutions } from '@/features/rsform/components';
|
||||
import { PickSubstitutions } from '@/features/rsform/components/pick-substitutions';
|
||||
|
||||
import { TextArea } from '@/components/input';
|
||||
import { useDialogsStore } from '@/stores/dialogs';
|
||||
|
|
|
@ -7,9 +7,9 @@ import { zodResolver } from '@hookform/resolvers/zod';
|
|||
import { HelpTopic } from '@/features/help';
|
||||
import { type ILibraryItem } from '@/features/library';
|
||||
import { useLibrary } from '@/features/library/backend/use-library';
|
||||
import { SelectLibraryItem } from '@/features/library/components';
|
||||
import { SelectLibraryItem } from '@/features/library/components/select-library-item';
|
||||
import { useRSForm } from '@/features/rsform/backend/use-rsform';
|
||||
import { PickMultiConstituenta } from '@/features/rsform/components';
|
||||
import { PickMultiConstituenta } from '@/features/rsform/components/pick-multi-constituenta';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
import { Loader } from '@/components/loader';
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
import clsx from 'clsx';
|
||||
|
||||
import { EditorLibraryItem, ToolbarItemCard } from '@/features/library/components';
|
||||
import { EditorLibraryItem } from '@/features/library/components/editor-library-item';
|
||||
import { ToolbarItemCard } from '@/features/library/components/toolbar-item-card';
|
||||
|
||||
import { useWindowSize } from '@/hooks/use-window-size';
|
||||
import { useModificationStore } from '@/stores/modification';
|
||||
|
|
|
@ -7,7 +7,7 @@ import { zodResolver } from '@hookform/resolvers/zod';
|
|||
|
||||
import { type IUpdateLibraryItemDTO, LibraryItemType, schemaUpdateLibraryItem } from '@/features/library';
|
||||
import { useUpdateItem } from '@/features/library/backend/use-update-item';
|
||||
import { ToolbarItemAccess } from '@/features/library/components';
|
||||
import { ToolbarItemAccess } from '@/features/library/components/toolbar-item-access';
|
||||
|
||||
import { SubmitButton } from '@/components/control';
|
||||
import { IconSave } from '@/components/icons';
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import React from 'react';
|
||||
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
import { type OssNode } from '@/features/oss/models/oss-layout';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use client';
|
||||
|
||||
import { useAuthSuspense } from '@/features/auth';
|
||||
import { MenuRole } from '@/features/library/components';
|
||||
import { MenuRole } from '@/features/library/components/menu-role';
|
||||
|
||||
import { MenuMain } from './menu-main';
|
||||
import { useOssEdit } from './oss-edit-context';
|
||||
|
|
|
@ -5,7 +5,7 @@ import { useParams } from 'react-router';
|
|||
import { z } from 'zod';
|
||||
|
||||
import { urls, useBlockNavigation, useConceptNavigation } from '@/app';
|
||||
import { ConstituentaTooltip } from '@/features/rsform/components';
|
||||
import { ConstituentaTooltip } from '@/features/rsform/components/constituenta-tooltip';
|
||||
|
||||
import { isAxiosError } from '@/backend/api-transport';
|
||||
import { TextURL } from '@/components/control';
|
||||
|
|
|
@ -63,7 +63,7 @@ export function OssTabs({ activeTab }: OssTabsProps) {
|
|||
<TabList className='absolute z-sticky flex border-b-2 border-x-2 divide-x-2'>
|
||||
<MenuOssTabs />
|
||||
|
||||
<TabLabel label='Карточка' title={schema.title ?? ''} />
|
||||
<TabLabel label='Паспорт' />
|
||||
<TabLabel label='Граф' />
|
||||
</TabList>
|
||||
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
export { ConstituentaTooltip } from './constituenta-tooltip';
|
||||
export { PickMultiConstituenta } from './pick-multi-constituenta';
|
||||
export { PickSubstitutions } from './pick-substitutions';
|
|
@ -4,7 +4,7 @@ import { useState } from 'react';
|
|||
import { toast } from 'react-toastify';
|
||||
|
||||
import { type ILibraryItem } from '@/features/library';
|
||||
import { SelectLibraryItem } from '@/features/library/components';
|
||||
import { SelectLibraryItem } from '@/features/library/components/select-library-item';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
import { createColumnHelper, DataTable, type IConditionalStyle } from '@/components/data-table';
|
||||
|
|
|
@ -4,7 +4,7 @@ import { useState } from 'react';
|
|||
import { Controller, useFormContext, useWatch } from 'react-hook-form';
|
||||
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
|
||||
import { TextArea, TextInput } from '@/components/input';
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ export function DlgInlineSynthesis() {
|
|||
className='w-32'
|
||||
/>
|
||||
<TabLabel
|
||||
label='Содержание'
|
||||
label='Конституенты'
|
||||
title={!sourceID ? 'Выберите схему' : 'Перечень конституент'}
|
||||
className='w-32'
|
||||
disabled={!sourceID}
|
||||
|
|
|
@ -4,7 +4,7 @@ import { useFormContext, useWatch } from 'react-hook-form';
|
|||
|
||||
import { LibraryItemType } from '@/features/library';
|
||||
import { useLibrary } from '@/features/library/backend/use-library';
|
||||
import { PickSchema } from '@/features/library/components';
|
||||
import { PickSchema } from '@/features/library/components/pick-schema';
|
||||
|
||||
import { TextInput } from '@/components/input';
|
||||
import { useDialogsStore } from '@/stores/dialogs';
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
import { urls, useConceptNavigation } from '@/app';
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { MiniSelectorOSS } from '@/features/library/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
import { IconShowSidebar } from '@/features/library/components/icon-show-sidebar';
|
||||
import { MiniSelectorOSS } from '@/features/library/components/mini-selector-oss';
|
||||
import { useFindPredecessor } from '@/features/oss/backend/use-find-predecessor';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import clsx from 'clsx';
|
||||
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
|
||||
import { Loader } from '@/components/loader';
|
||||
import { cn } from '@/components/utils';
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
import clsx from 'clsx';
|
||||
|
||||
import { EditorLibraryItem, ToolbarItemCard } from '@/features/library/components';
|
||||
import { EditorLibraryItem } from '@/features/library/components/editor-library-item';
|
||||
import { ToolbarItemCard } from '@/features/library/components/toolbar-item-card';
|
||||
|
||||
import { useWindowSize } from '@/hooks/use-window-size';
|
||||
import { useModificationStore } from '@/stores/modification';
|
||||
|
|
|
@ -13,7 +13,8 @@ import {
|
|||
schemaUpdateLibraryItem
|
||||
} from '@/features/library';
|
||||
import { useUpdateItem } from '@/features/library/backend/use-update-item';
|
||||
import { SelectVersion, ToolbarItemAccess } from '@/features/library/components';
|
||||
import { SelectVersion } from '@/features/library/components/select-version';
|
||||
import { ToolbarItemAccess } from '@/features/library/components/toolbar-item-access';
|
||||
|
||||
import { SubmitButton } from '@/components/control';
|
||||
import { IconSave } from '@/components/icons';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use client';
|
||||
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
import { useRestoreVersion } from '@/features/library/backend/use-restore-version';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
'use client';
|
||||
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { MiniSelectorOSS } from '@/features/library/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
import { MiniSelectorOSS } from '@/features/library/components/mini-selector-oss';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
import { Dropdown, DropdownButton, useDropdown } from '@/components/dropdown';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/input/select';
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { useReactFlow } from 'reactflow';
|
||||
|
||||
import { HelpTopic } from '@/features/help';
|
||||
import { BadgeHelp } from '@/features/help/components';
|
||||
import { MiniSelectorOSS } from '@/features/library/components';
|
||||
import { BadgeHelp } from '@/features/help/components/badge-help';
|
||||
import { MiniSelectorOSS } from '@/features/library/components/mini-selector-oss';
|
||||
|
||||
import { MiniButton } from '@/components/control';
|
||||
import {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use client';
|
||||
|
||||
import { useAuthSuspense } from '@/features/auth';
|
||||
import { MenuRole } from '@/features/library/components';
|
||||
import { MenuRole } from '@/features/library/components/menu-role';
|
||||
|
||||
import { MenuEditSchema } from './menu-edit-schema';
|
||||
import { MenuMain } from './menu-main';
|
||||
|
|
|
@ -8,8 +8,6 @@ import { TabLabel, TabList, TabPanel, Tabs } from '@/components/tabs';
|
|||
import { useAppLayoutStore } from '@/stores/app-layout';
|
||||
import { useModificationStore } from '@/stores/modification';
|
||||
|
||||
import { labelVersion } from '../../labels';
|
||||
|
||||
import { EditorConstituenta } from './editor-constituenta';
|
||||
import { EditorRSFormCard } from './editor-rsform-card';
|
||||
import { EditorRSList } from './editor-rslist';
|
||||
|
@ -81,16 +79,10 @@ export function RSTabs({ activeID, activeTab }: RSTabsProps) {
|
|||
<TabList className='absolute z-sticky flex border-b-2 border-x-2 divide-x-2'>
|
||||
<MenuRSTabs />
|
||||
|
||||
<TabLabel
|
||||
label='Карточка'
|
||||
titleHtml={`${schema.title ?? ''}<br />Версия: ${labelVersion(schema.version, schema.versions)}`}
|
||||
/>
|
||||
<TabLabel
|
||||
label='Содержание'
|
||||
titleHtml={`Конституент: ${schema.stats?.count_all ?? 0}<br />Ошибок: ${schema.stats?.count_errors ?? 0}`}
|
||||
/>
|
||||
<TabLabel label='Редактор' />
|
||||
<TabLabel label='Граф термов' />
|
||||
<TabLabel label='Паспорт' />
|
||||
<TabLabel label='Список' />
|
||||
<TabLabel label='Понятие' />
|
||||
<TabLabel label='Граф' />
|
||||
</TabList>
|
||||
|
||||
<div className='overflow-x-hidden'>
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
export { InfoUsers } from './info-users';
|
||||
export { SelectUser } from './select-user';
|
||||
export { TableUsers } from './table-users';
|
|
@ -1,5 +1,5 @@
|
|||
import { useAuthSuspense } from '@/features/auth';
|
||||
import { ExpectedAnonymous } from '@/features/auth/components';
|
||||
import { ExpectedAnonymous } from '@/features/auth/components/expected-anonymous';
|
||||
|
||||
import { FormSignup } from './form-signup';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { RequireAuth } from '@/features/auth/components';
|
||||
import { RequireAuth } from '@/features/auth/components/require-auth';
|
||||
|
||||
import { EditorPassword } from './editor-password';
|
||||
import { EditorProfile } from './editor-profile';
|
||||
|
|
Loading…
Reference in New Issue
Block a user