mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-24 20:36:40 +07:00
Merge pull request #124 from muerwre/feature/122_new_profile_tooltip
Feature/122 new profile tooltip
This commit is contained in:
commit
4f0fd93b94
24 changed files with 38 additions and 84 deletions
|
@ -2,18 +2,18 @@
|
|||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="1920"
|
||||
height="1080"
|
||||
viewBox="0 0 507.99999 285.75001"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
sodipodi:docname="muro_is_lost.svg"
|
||||
inkscape:version="1.2-dev (9ee32be, 2021-06-19)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
width="1920"
|
||||
height="1080"
|
||||
viewBox="0 0 507.99999 285.75001"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
sodipodi:docname="muro_is_lost.svg"
|
||||
inkscape:version="1.2-dev (9ee32be, 2021-06-19)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#1b1b1b"
|
||||
|
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
|
@ -1,13 +1,7 @@
|
|||
import React, { VFC } from 'react';
|
||||
|
||||
import classNames from 'classnames';
|
||||
import {
|
||||
addMonths,
|
||||
addYears,
|
||||
differenceInDays,
|
||||
differenceInMonths,
|
||||
differenceInYears,
|
||||
} from 'date-fns';
|
||||
import { addYears, differenceInMonths, differenceInYears } from 'date-fns';
|
||||
|
||||
import { StatsCard } from '~/components/charts/StatsCard';
|
||||
import { CardProps } from '~/components/containers/Card';
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import React, { FC, useCallback, useState } from 'react';
|
||||
|
||||
import { Manager, Popper, Reference } from 'react-popper';
|
||||
import React, { FC } from 'react';
|
||||
|
||||
import { Avatar } from '~/components/common/Avatar';
|
||||
import { MenuButton } from '~/components/menu';
|
||||
|
|
|
@ -1,13 +1,4 @@
|
|||
import React, {
|
||||
createElement,
|
||||
FC,
|
||||
Fragment,
|
||||
memo,
|
||||
ReactNode,
|
||||
useCallback,
|
||||
useMemo,
|
||||
useState,
|
||||
} from 'react';
|
||||
import React, { createElement, FC, Fragment, memo, ReactNode, useCallback, useMemo, useState } from 'react';
|
||||
|
||||
import classnames from 'classnames';
|
||||
import classNames from 'classnames';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import React, { FC, memo, useMemo } from 'react';
|
||||
|
||||
import { differenceInDays, formatDistance } from 'date-fns';
|
||||
import { formatDistance } from 'date-fns';
|
||||
import ru from 'date-fns/locale/ru';
|
||||
|
||||
import styles from './styles.module.scss';
|
||||
|
|
|
@ -9,7 +9,6 @@ import { CommentFormFormatButtons } from '~/components/comment/CommentFormFormat
|
|||
import { LocalCommentFormTextarea } from '~/components/comment/LocalCommentFormTextarea';
|
||||
import { Filler } from '~/components/containers/Filler';
|
||||
import { Button } from '~/components/input/Button';
|
||||
import { LoaderCircle } from '~/components/input/LoaderCircle';
|
||||
import { UploadDropzone } from '~/components/upload/UploadDropzone';
|
||||
import { ERROR_LITERAL } from '~/constants/errors';
|
||||
import { EMPTY_COMMENT } from '~/constants/node';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import React, { forwardRef, useCallback } from 'react';
|
||||
import React, { forwardRef } from 'react';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
|
@ -6,7 +6,6 @@ import { Square } from '~/components/common/Square';
|
|||
import { ImagePresets } from '~/constants/urls';
|
||||
import { getURLFromString } from '~/utils/dom';
|
||||
import { DivProps } from '~/utils/types';
|
||||
import { openUserProfile } from '~/utils/user';
|
||||
|
||||
import styles from './styles.module.scss';
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ import React, {
|
|||
DetailedHTMLProps,
|
||||
FC,
|
||||
InputHTMLAttributes,
|
||||
ReactElement,
|
||||
ReactNode,
|
||||
useCallback,
|
||||
useState,
|
||||
|
|
|
@ -5,7 +5,7 @@ import React, {
|
|||
TextareaHTMLAttributes,
|
||||
useCallback,
|
||||
useEffect,
|
||||
useState,
|
||||
useState
|
||||
} from 'react';
|
||||
|
||||
import autosize from 'autosize';
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
import React, { FC } from 'react';
|
||||
|
||||
import { Filler } from '~/components/containers/Filler';
|
||||
import { Group } from '~/components/containers/Group';
|
||||
import { InputText } from '~/components/input/InputText';
|
||||
import { SearchInput } from '~/components/input/SearchInput';
|
||||
import { HorizontalMenu } from '~/components/menu/HorizontalMenu';
|
||||
import { LabNodesSort } from '~/types/lab';
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import React, { VFC } from 'react';
|
||||
|
||||
import Tippy from '@tippyjs/react';
|
||||
import classNames from 'classnames';
|
||||
|
||||
import { Icon } from '~/components/input/Icon';
|
||||
import { MenuButton, MenuItemWithIcon, SeparatedMenu } from '~/components/menu';
|
||||
|
|
|
@ -1,12 +1,4 @@
|
|||
import React, {
|
||||
createContext,
|
||||
FC,
|
||||
PropsWithChildren,
|
||||
useCallback,
|
||||
useContext,
|
||||
useMemo,
|
||||
useState,
|
||||
} from 'react';
|
||||
import React, { createContext, FC, PropsWithChildren, useCallback, useContext, useMemo, useState } from 'react';
|
||||
|
||||
import { isNil } from '~/utils/ramda';
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import React, { FC, useCallback, useMemo } from 'react';
|
||||
import React, { FC, useMemo } from 'react';
|
||||
|
||||
import { AudioPlayer } from '~/components/media/AudioPlayer';
|
||||
import { AudioUpload } from '~/components/upload/AudioUpload';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import React, { FC, useCallback, useMemo } from 'react';
|
||||
import React, { FC, useMemo } from 'react';
|
||||
|
||||
import { ImageUpload } from '~/components/upload/ImageUpload';
|
||||
import { ImagePresets } from '~/constants/urls';
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
import React, { FC } from 'react';
|
||||
|
||||
import Masonry from 'react-masonry-css';
|
||||
|
||||
import { Columns } from '~/components/containers/Columns';
|
||||
import { InfiniteScroll } from '~/components/containers/InfiniteScroll';
|
||||
import { LabNoResults } from '~/components/lab/LabNoResults';
|
||||
|
|
|
@ -1,16 +1,12 @@
|
|||
import React, { FC, useMemo } from 'react';
|
||||
import React, { FC } from 'react';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
import { Avatar } from '~/components/common/Avatar';
|
||||
import { Filler } from '~/components/containers/Filler';
|
||||
import { Group } from '~/components/containers/Group';
|
||||
import { useRandomPhrase } from '~/constants/phrases';
|
||||
import { useUserActiveStatus } from '~/hooks/auth/useUserActiveStatus';
|
||||
import { useUserDescription } from '~/hooks/auth/useUserDescription';
|
||||
import { useColorGradientFromString } from '~/hooks/color/useColorGradientFromString';
|
||||
import { IUser } from '~/types/auth';
|
||||
import { generateGradientFromColor } from '~/utils/color';
|
||||
import { path } from '~/utils/ramda';
|
||||
|
||||
import styles from './styles.module.scss';
|
||||
|
@ -34,7 +30,7 @@ const ProfileQuickInfo: FC<ProfileQuickInfoProps> = ({ user }) => {
|
|||
<div className={styles.username}>~{user.username}</div>
|
||||
|
||||
<div className={classNames(styles.status, { [styles.active]: isActive })}>
|
||||
{isActive ? 'в сознании' : 'деактивирован'}
|
||||
{isActive ? 'юнит в сознании' : 'юнит деактивирован'}
|
||||
</div>
|
||||
</Filler>
|
||||
</Group>
|
||||
|
|
|
@ -24,15 +24,18 @@ div.top.top {
|
|||
.username {
|
||||
font: $font_12_regular;
|
||||
opacity: 0.5;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
.fullname {
|
||||
margin-bottom: 3px;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
.status {
|
||||
font: $font_12_regular;
|
||||
margin-top: $gap;
|
||||
color: darken(white, 50%);
|
||||
|
||||
&.active {
|
||||
color: $olive;
|
||||
|
|
|
@ -2,10 +2,7 @@ import React, { VFC } from 'react';
|
|||
|
||||
import classNames from 'classnames';
|
||||
|
||||
import { Square } from '~/components/common/Square';
|
||||
import { Card } from '~/components/containers/Card';
|
||||
import { Filler } from '~/components/containers/Filler';
|
||||
import { Grid } from '~/components/containers/Grid';
|
||||
import { Group } from '~/components/containers/Group';
|
||||
import { Button } from '~/components/input/Button';
|
||||
import { VerticalMenu } from '~/components/menu/VerticalMenu';
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
import React, { useState, VFC } from 'react';
|
||||
|
||||
import Masonry from 'react-masonry-css';
|
||||
|
||||
import { Card } from '~/components/containers/Card';
|
||||
import { Columns } from '~/components/containers/Columns';
|
||||
import { Filler } from '~/components/containers/Filler';
|
||||
import { Group } from '~/components/containers/Group';
|
||||
import { Markdown } from '~/components/containers/Markdown';
|
||||
import { Padder } from '~/components/containers/Padder';
|
||||
import { Button } from '~/components/input/Button';
|
||||
import { Icon } from '~/components/input/Icon';
|
||||
|
@ -15,9 +12,6 @@ import { Textarea } from '~/components/input/Textarea';
|
|||
import { HorizontalMenu } from '~/components/menu/HorizontalMenu';
|
||||
import { NoteCard } from '~/components/notes/NoteCard';
|
||||
import { useGetNotes } from '~/hooks/notes/useGetNotes';
|
||||
import { formatText } from '~/utils/dom';
|
||||
|
||||
import styles from './styles.module.scss';
|
||||
|
||||
interface SettingsNotesProps {}
|
||||
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
import { useMemo } from 'react';
|
||||
|
||||
import { adjustHue } from 'color2k';
|
||||
|
||||
import { generateGradientFromColor, normalizeBrightColor } from '~/utils/color';
|
||||
import { stringToColour } from '~/utils/dom';
|
||||
import { generateGradientFromColor } from '~/utils/color';
|
||||
|
||||
export const useColorGradientFromString = (
|
||||
val?: string,
|
||||
|
|
|
@ -6,10 +6,15 @@ import { IComment } from '~/types';
|
|||
import { showErrorToast } from '~/utils/errors/showToast';
|
||||
|
||||
export const useNodeComments = (nodeId: number, fallbackData?: IComment[]) => {
|
||||
const { comments, isLoading, onLoadMoreComments, hasMore, data, mutate, isLoadingMore } = useGetComments(
|
||||
nodeId,
|
||||
fallbackData
|
||||
);
|
||||
const {
|
||||
comments,
|
||||
isLoading,
|
||||
onLoadMoreComments,
|
||||
hasMore,
|
||||
data,
|
||||
mutate,
|
||||
isLoadingMore,
|
||||
} = useGetComments(nodeId, fallbackData);
|
||||
|
||||
const onDelete = useCallback(
|
||||
async (id: IComment['id'], isLocked: boolean) => {
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
import { useCallback, useMemo } from 'react';
|
||||
|
||||
import useSWRInfinite, { SWRInfiniteKeyLoader } from 'swr/infinite';
|
||||
|
||||
import { getLabNodes } from '~/api/lab';
|
||||
import { apiGetNotes } from '~/api/notes';
|
||||
import { ApiGetNotesRequest } from '~/api/notes/types';
|
||||
import { useAuth } from '~/hooks/auth/useAuth';
|
||||
import { useUser } from '~/hooks/auth/useUser';
|
||||
import { GetLabNodesRequest, ILabNode, LabNodesSort } from '~/types/lab';
|
||||
import { GetLabNodesRequest, ILabNode } from '~/types/lab';
|
||||
import { flatten, uniqBy } from '~/utils/ramda';
|
||||
|
||||
const DEFAULT_COUNT = 20;
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import React, { FC } from 'react';
|
||||
|
||||
import { Superpower } from '~/components/boris/Superpower';
|
||||
import { Group } from '~/components/containers/Group';
|
||||
import { Sticky } from '~/components/containers/Sticky';
|
||||
import { LabHead } from '~/components/lab/LabHead';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { IError, INode, ITag } from '~/types';
|
||||
import { INode, ITag } from '~/types';
|
||||
|
||||
export enum LabNodesSort {
|
||||
New = 'new',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue