mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-25 04:46:40 +07:00
added boris tabs
This commit is contained in:
parent
da510e346a
commit
832386d39a
3 changed files with 33 additions and 5 deletions
|
@ -4,6 +4,7 @@ import styles from './styles.module.scss';
|
||||||
import markdown from '~/styles/common/markdown.module.scss';
|
import markdown from '~/styles/common/markdown.module.scss';
|
||||||
import { Group } from '~/components/containers/Group';
|
import { Group } from '~/components/containers/Group';
|
||||||
import { Button } from '~/components/input/Button';
|
import { Button } from '~/components/input/Button';
|
||||||
|
import { InputText } from '~/components/input/InputText';
|
||||||
|
|
||||||
interface IProps {}
|
interface IProps {}
|
||||||
|
|
||||||
|
@ -16,6 +17,14 @@ const BorisUIDemo: FC<IProps> = () => (
|
||||||
разработке
|
разработке
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h2>Инпуты</h2>
|
||||||
|
|
||||||
|
<form autoComplete="off">
|
||||||
|
<InputText title="Обычный инпут" />
|
||||||
|
<InputText title="Инпут с ошибкой" error="Ошибка" />
|
||||||
|
<InputText title="Пароль" type="password" />
|
||||||
|
</form>
|
||||||
|
|
||||||
<h2>Кнопки</h2>
|
<h2>Кнопки</h2>
|
||||||
|
|
||||||
<h4>Цвета</h4>
|
<h4>Цвета</h4>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import React, { createContext, FC, VFC, useContext, useState } from 'react';
|
import React, { createContext, FC, VFC, useContext, useState, useMemo } from 'react';
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
@ -31,12 +31,19 @@ const List: VFC<TabProps> = ({ items }) => {
|
||||||
|
|
||||||
const Content: FC<any> = ({ children }) => {
|
const Content: FC<any> = ({ children }) => {
|
||||||
const { activeTab } = useContext(TabContext);
|
const { activeTab } = useContext(TabContext);
|
||||||
|
const notEmptyChildren = useMemo(() => {
|
||||||
|
if (!Array.isArray(children)) {
|
||||||
|
return [children];
|
||||||
|
}
|
||||||
|
|
||||||
if (!Array.isArray(children) && activeTab > 0) {
|
return children.filter(it => it);
|
||||||
return null;
|
}, [children]);
|
||||||
|
|
||||||
|
if (Array.isArray(notEmptyChildren) && notEmptyChildren.length - 1 < activeTab) {
|
||||||
|
return notEmptyChildren[notEmptyChildren.length - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
return Array.isArray(children) ? children[activeTab] : children;
|
return notEmptyChildren[activeTab];
|
||||||
};
|
};
|
||||||
|
|
||||||
const Tabs = function({ children }) {
|
const Tabs = function({ children }) {
|
||||||
|
|
|
@ -12,6 +12,7 @@ import { useUserContext } from '~/utils/context/UserContextProvider';
|
||||||
import { BorisUsageStats } from '~/redux/boris/reducer';
|
import { BorisUsageStats } from '~/redux/boris/reducer';
|
||||||
import { Tabs } from '~/components/dialogs/Tabs';
|
import { Tabs } from '~/components/dialogs/Tabs';
|
||||||
import { Superpower } from '~/components/boris/Superpower';
|
import { Superpower } from '~/components/boris/Superpower';
|
||||||
|
import { BorisUIDemo } from '~/components/boris/BorisUIDemo';
|
||||||
|
|
||||||
type IProps = {
|
type IProps = {
|
||||||
title: string;
|
title: string;
|
||||||
|
@ -38,7 +39,18 @@ const BorisLayout: FC<IProps> = ({ title, setIsBetaTester, isTester, stats }) =>
|
||||||
|
|
||||||
<div className={styles.container}>
|
<div className={styles.container}>
|
||||||
<Card className={styles.content}>
|
<Card className={styles.content}>
|
||||||
<BorisComments />
|
<Tabs>
|
||||||
|
<Superpower>
|
||||||
|
<Tabs.List items={['Комментарии', 'ЮАЙ ПЛЭЙГРАУНД']} />
|
||||||
|
</Superpower>
|
||||||
|
|
||||||
|
<Tabs.Content>
|
||||||
|
<BorisComments />
|
||||||
|
<Superpower>
|
||||||
|
<BorisUIDemo />
|
||||||
|
</Superpower>
|
||||||
|
</Tabs.Content>
|
||||||
|
</Tabs>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Group className={styles.stats}>
|
<Group className={styles.stats}>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue