1
0
Fork 0
mirror of https://github.com/muerwre/vault-frontend.git synced 2025-05-04 00:56:40 +07:00

added sidebar router

This commit is contained in:
Fedor Katurov 2022-07-27 16:29:22 +07:00
parent 8a4709103b
commit 8a71d3d462
18 changed files with 166 additions and 108 deletions
src/components
boris/BorisUIDemo
node
NodeTags
NodeTagsPlaceholder
settings/SettingsMenu
tags
Tag
TagWrapper

View file

@ -1,11 +1,9 @@
import React, { FC, useState } from 'react';
import { FC, useState } from 'react';
import { Card } from '~/components/containers/Card';
import { Group } from '~/components/containers/Group';
import { Button } from '~/components/input/Button';
import { InputText } from '~/components/input/InputText';
import { Dialog } from '~/constants/modal';
import { useShowModal } from '~/hooks/modal/useShowModal';
import markdown from '~/styles/common/markdown.module.scss';
import styles from './styles.module.scss';
@ -14,7 +12,6 @@ interface IProps {}
const BorisUIDemo: FC<IProps> = () => {
const [text, setText] = useState('');
const openProfileSidebar = useShowModal(Dialog.ProfileSidebar);
return (
<Card className={styles.card}>
@ -25,9 +22,6 @@ const BorisUIDemo: FC<IProps> = () => {
разработке
</p>
<h2>Тестовые фичи</h2>
<Button onClick={() => openProfileSidebar({})}>Профиль в сайдбаре</Button>
<h2>Инпуты</h2>
<form autoComplete="off">

View file

@ -17,11 +17,11 @@ const NodeTags: FC<IProps> = memo(
return (
<Tags
tags={tags}
is_editable={is_editable}
editable={is_editable}
onTagsChange={onChange}
onTagClick={onTagClick}
onTagDelete={onTagDelete}
is_deletable={is_deletable}
deletable={is_deletable}
/>
);
}

View file

@ -10,7 +10,7 @@ interface IProps {
}
const NodeTagsPlaceholder: FC<IProps> = memo(({ is_editable, tags, onChange }) => (
<Tags tags={tags} is_editable={is_editable} onTagsChange={onChange} />
<Tags tags={tags} editable={is_editable} onTagsChange={onChange} />
));
export { NodeTagsPlaceholder };

View file

@ -1,4 +1,4 @@
import React, { VFC } from 'react';
import { VFC } from 'react';
import Link from 'next/link';
@ -8,7 +8,6 @@ import { Button } from '~/components/input/Button';
import { VerticalMenu } from '~/components/menu/VerticalMenu';
import { URLS } from '~/constants/urls';
import { ProfileSidebarHead } from '~/containers/profile/ProfileSidebarHead';
import { ProfileStats } from '~/containers/profile/ProfileStats';
import styles from './styles.module.scss';
@ -18,8 +17,6 @@ const SettingsMenu: VFC<SettingsMenuProps> = () => (
<Group>
<ProfileSidebarHead />
<br />
<Group>
<VerticalMenu className={styles.menu}>
<Link href={URLS.SETTINGS.BASE} passHref>
@ -35,10 +32,6 @@ const SettingsMenu: VFC<SettingsMenuProps> = () => (
</Link>
</VerticalMenu>
<div className={styles.stats}>
<ProfileStats />
</div>
<Group horizontal>
<Filler />

View file

@ -13,9 +13,9 @@ interface IProps {
tag: Partial<ITag>;
size?: 'normal' | 'big';
is_deletable?: boolean;
is_hoverable?: boolean;
is_editing?: boolean;
deletable?: boolean;
hoverable?: boolean;
editing?: boolean;
onBlur?: FocusEventHandler<HTMLInputElement>;
onClick?: (tag: Partial<ITag>) => void;
@ -24,9 +24,9 @@ interface IProps {
const Tag: FC<IProps> = ({
tag,
is_deletable,
is_hoverable,
is_editing,
deletable: deletable,
hoverable: hoverable,
editing: editing,
size = 'normal',
onClick,
onDelete,
@ -48,9 +48,9 @@ const Tag: FC<IProps> = ({
<TagWrapper
feature={getTagFeature(tag)}
size={size}
is_deletable={is_deletable}
is_hoverable={is_hoverable}
is_editing={is_editing}
deletable={deletable}
hoverable={hoverable}
editing={editing}
onClick={onClick && onClickHandler}
onDelete={onDeleteHandler}
title={tag.title}

View file

@ -9,10 +9,10 @@ import styles from './styles.module.scss';
interface IProps {
feature?: string;
size?: string;
is_deletable?: boolean;
is_hoverable?: boolean;
is_editing?: boolean;
has_input?: boolean;
deletable?: boolean;
hoverable?: boolean;
editing?: boolean;
hasInput?: boolean;
onClick?: () => void;
onDelete?: () => void;
title?: string;
@ -22,15 +22,15 @@ const TagWrapper: FC<IProps> = ({
children,
feature,
size,
is_deletable,
is_hoverable,
is_editing,
has_input,
deletable,
hoverable,
editing,
hasInput,
onClick,
onDelete,
title = '',
}) => {
const deletable = is_deletable && !is_editing && !has_input;
const canBeDeleted = deletable && !editing && !hasInput;
const onDeletePress = useCallback(
event => {
if (!onDelete) {
@ -46,10 +46,10 @@ const TagWrapper: FC<IProps> = ({
return (
<div
className={classNames(styles.tag, feature, size, {
is_hoverable,
is_editing,
deletable,
input: has_input,
is_hoverable: hoverable,
is_editing: editing,
deletable: canBeDeleted,
input: hasInput,
clickable: onClick,
})}
onClick={onClick}