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

added boris tabs

This commit is contained in:
Fedor Katurov 2021-12-26 11:35:07 +07:00
parent da510e346a
commit 832386d39a
3 changed files with 33 additions and 5 deletions

View file

@ -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>

View file

@ -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 }) {

View file

@ -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}>