mirror of
https://github.com/muerwre/vault-frontend.git
synced 2025-04-24 20:36:40 +07:00
(nextjs) added eslint and import sorting
This commit is contained in:
parent
e5f8d5a551
commit
0838bf7ee6
330 changed files with 1576 additions and 896 deletions
33
.eslintrc.js
Normal file
33
.eslintrc.js
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
module.exports = {
|
||||||
|
extends: ['plugin:react/recommended', 'plugin:@next/next/recommended'],
|
||||||
|
rules: {
|
||||||
|
'react/prop-types': 0,
|
||||||
|
'react/display-name': 0,
|
||||||
|
'react/react-in-jsx-scope': 0,
|
||||||
|
'@next/next/no-img-element': 0,
|
||||||
|
'import/order': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
alphabetize: { order: 'asc' },
|
||||||
|
'newlines-between': 'always',
|
||||||
|
groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'unknown'],
|
||||||
|
pathGroups: [
|
||||||
|
{
|
||||||
|
pattern: 'react',
|
||||||
|
group: 'builtin',
|
||||||
|
position: 'before',
|
||||||
|
},
|
||||||
|
{ pattern: '~/**', group: 'internal' },
|
||||||
|
{ pattern: './**', group: 'sibling' },
|
||||||
|
],
|
||||||
|
pathGroupsExcludedImportTypes: ['react'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
parserOptions: {
|
||||||
|
ecmaVersion: 7,
|
||||||
|
sourceType: 'module',
|
||||||
|
},
|
||||||
|
plugins: ['import', 'react-hooks'],
|
||||||
|
parser: '@typescript-eslint/parser',
|
||||||
|
};
|
|
@ -78,6 +78,7 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@craco/craco": "^6.4.3",
|
"@craco/craco": "^6.4.3",
|
||||||
|
"@next/eslint-plugin-next": "^12.0.8",
|
||||||
"@types/classnames": "^2.2.7",
|
"@types/classnames": "^2.2.7",
|
||||||
"@types/marked": "^1.2.2",
|
"@types/marked": "^1.2.2",
|
||||||
"@types/node": "^11.13.22",
|
"@types/node": "^11.13.22",
|
||||||
|
@ -85,6 +86,7 @@
|
||||||
"@types/throttle-debounce": "^2.1.0",
|
"@types/throttle-debounce": "^2.1.0",
|
||||||
"@types/yup": "^0.29.11",
|
"@types/yup": "^0.29.11",
|
||||||
"craco-alias": "^2.3.1",
|
"craco-alias": "^2.3.1",
|
||||||
|
"eslint-plugin-import": "^2.25.4",
|
||||||
"husky": "^7.0.4",
|
"husky": "^7.0.4",
|
||||||
"lint-staged": "^12.1.6",
|
"lint-staged": "^12.1.6",
|
||||||
"next-transpile-modules": "^9.0.0",
|
"next-transpile-modules": "^9.0.0",
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import { api, cleanResult } from '~/utils/api';
|
|
||||||
import { API } from '~/constants/api';
|
|
||||||
import {
|
import {
|
||||||
ApiAttachSocialRequest,
|
ApiAttachSocialRequest,
|
||||||
ApiAttachSocialResult,
|
ApiAttachSocialResult,
|
||||||
|
@ -22,6 +20,8 @@ import {
|
||||||
ApiUserLoginRequest,
|
ApiUserLoginRequest,
|
||||||
ApiUserLoginResult,
|
ApiUserLoginResult,
|
||||||
} from '~/api/auth/types';
|
} from '~/api/auth/types';
|
||||||
|
import { API } from '~/constants/api';
|
||||||
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
export const apiUserLogin = ({ username, password }: ApiUserLoginRequest) =>
|
export const apiUserLogin = ({ username, password }: ApiUserLoginRequest) =>
|
||||||
api
|
api
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
import { API } from '~/constants/api';
|
|
||||||
import { api, cleanResult } from '~/utils/api';
|
|
||||||
import { IGetGithubIssuesResult, StatBackend } from '~/types/boris';
|
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
|
import { API } from '~/constants/api';
|
||||||
|
import { IGetGithubIssuesResult, StatBackend } from '~/types/boris';
|
||||||
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
export const getBorisBackendStats = () =>
|
export const getBorisBackendStats = () =>
|
||||||
api.get<StatBackend>(API.BORIS.GET_BACKEND_STATS).then(cleanResult);
|
api.get<StatBackend>(API.BORIS.GET_BACKEND_STATS).then(cleanResult);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { api, cleanResult } from '~/utils/api';
|
|
||||||
import { API } from '~/constants/api';
|
import { API } from '~/constants/api';
|
||||||
import { PostCellViewRequest, PostCellViewResult } from '~/types/node';
|
|
||||||
import { GetSearchResultsRequest, GetSearchResultsResult } from '~/types/flow';
|
import { GetSearchResultsRequest, GetSearchResultsResult } from '~/types/flow';
|
||||||
|
import { PostCellViewRequest, PostCellViewResult } from '~/types/node';
|
||||||
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
export const postCellView = ({ id, flow }: PostCellViewRequest) =>
|
export const postCellView = ({ id, flow }: PostCellViewRequest) =>
|
||||||
api
|
api
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import { api, cleanResult } from '~/utils/api';
|
|
||||||
import { API } from '~/constants/api';
|
import { API } from '~/constants/api';
|
||||||
import {
|
import {
|
||||||
GetLabNodesRequest,
|
GetLabNodesRequest,
|
||||||
|
@ -6,6 +5,7 @@ import {
|
||||||
GetLabStatsResult,
|
GetLabStatsResult,
|
||||||
GetLabUpdatesResult,
|
GetLabUpdatesResult,
|
||||||
} from '~/types/lab';
|
} from '~/types/lab';
|
||||||
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
export const getLabNodes = ({ after }: GetLabNodesRequest) =>
|
export const getLabNodes = ({ after }: GetLabNodesRequest) =>
|
||||||
api
|
api
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import { api, cleanResult } from '~/utils/api';
|
|
||||||
import { API } from '~/constants/api';
|
|
||||||
import {
|
import {
|
||||||
ApiDeleteMessageRequest,
|
ApiDeleteMessageRequest,
|
||||||
ApiDeleteMessageResult,
|
ApiDeleteMessageResult,
|
||||||
|
@ -8,6 +6,8 @@ import {
|
||||||
ApiSendMessageRequest,
|
ApiSendMessageRequest,
|
||||||
ApiSendMessageResult,
|
ApiSendMessageResult,
|
||||||
} from '~/api/messages/types';
|
} from '~/api/messages/types';
|
||||||
|
import { API } from '~/constants/api';
|
||||||
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
export const apiGetUserMessages = ({ username, after, before }: ApiGetUserMessagesRequest) =>
|
export const apiGetUserMessages = ({ username, after, before }: ApiGetUserMessagesRequest) =>
|
||||||
api
|
api
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { api, cleanResult } from '~/utils/api';
|
|
||||||
import { API } from '~/constants/api';
|
|
||||||
import { ApiGetEmbedYoutubeResult } from '~/api/metadata/types';
|
import { ApiGetEmbedYoutubeResult } from '~/api/metadata/types';
|
||||||
|
import { API } from '~/constants/api';
|
||||||
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
export const apiGetEmbedYoutube = (ids: string[]) =>
|
export const apiGetEmbedYoutube = (ids: string[]) =>
|
||||||
api
|
api
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import { api, cleanResult } from '~/utils/api';
|
import axios, { AxiosRequestConfig } from 'axios';
|
||||||
import { IComment, INode } from '~/types';
|
|
||||||
import { API } from '~/constants/api';
|
import { API } from '~/constants/api';
|
||||||
import { COMMENTS_DISPLAY } from '~/constants/node';
|
import { COMMENTS_DISPLAY } from '~/constants/node';
|
||||||
|
import { IComment, INode } from '~/types';
|
||||||
import {
|
import {
|
||||||
ApiDeleteNodeTagsRequest,
|
ApiDeleteNodeTagsRequest,
|
||||||
ApiDeleteNodeTagsResult,
|
ApiDeleteNodeTagsResult,
|
||||||
|
@ -24,7 +25,8 @@ import {
|
||||||
GetNodeDiffRequest,
|
GetNodeDiffRequest,
|
||||||
GetNodeDiffResult,
|
GetNodeDiffResult,
|
||||||
} from '~/types/node';
|
} from '~/types/node';
|
||||||
import axios, { AxiosRequestConfig } from 'axios';
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
|
|
||||||
export type ApiPostNodeRequest = { node: INode };
|
export type ApiPostNodeRequest = { node: INode };
|
||||||
export type ApiPostNodeResult = {
|
export type ApiPostNodeResult = {
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import { api, cleanResult } from '~/utils/api';
|
|
||||||
import { API } from '~/constants/api';
|
import { API } from '~/constants/api';
|
||||||
import {
|
import {
|
||||||
ApiGetNodesOfTagRequest,
|
ApiGetNodesOfTagRequest,
|
||||||
|
@ -6,6 +5,7 @@ import {
|
||||||
ApiGetTagSuggestionsRequest,
|
ApiGetTagSuggestionsRequest,
|
||||||
ApiGetTagSuggestionsResult,
|
ApiGetTagSuggestionsResult,
|
||||||
} from '~/types/tags';
|
} from '~/types/tags';
|
||||||
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
export const apiGetNodesOfTag = ({ tag, offset, limit }: ApiGetNodesOfTagRequest) =>
|
export const apiGetNodesOfTag = ({ tag, offset, limit }: ApiGetNodesOfTagRequest) =>
|
||||||
api
|
api
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { api, cleanResult } from '~/utils/api';
|
|
||||||
|
|
||||||
import { API } from '~/constants/api';
|
|
||||||
import { ApiUploadFileRequest, ApiUploadFIleResult } from '~/api/uploads/types';
|
import { ApiUploadFileRequest, ApiUploadFIleResult } from '~/api/uploads/types';
|
||||||
|
import { API } from '~/constants/api';
|
||||||
import { UploadTarget, UploadType } from '~/constants/uploads';
|
import { UploadTarget, UploadType } from '~/constants/uploads';
|
||||||
|
import { api, cleanResult } from '~/utils/api';
|
||||||
|
|
||||||
export const apiUploadFile = ({
|
export const apiUploadFile = ({
|
||||||
file,
|
file,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { IFile, IUploadProgressHandler } from '~/types';
|
|
||||||
import { UploadTarget, UploadType } from '~/constants/uploads';
|
import { UploadTarget, UploadType } from '~/constants/uploads';
|
||||||
|
import { IFile, IUploadProgressHandler } from '~/types';
|
||||||
|
|
||||||
export type ApiUploadFileRequest = {
|
export type ApiUploadFileRequest = {
|
||||||
file: File;
|
file: File;
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import { Button } from '~/components/input/Button';
|
|
||||||
import { Grid } from '~/components/containers/Grid';
|
import { Grid } from '~/components/containers/Grid';
|
||||||
import { Group } from '~/components/containers/Group';
|
import { Group } from '~/components/containers/Group';
|
||||||
import styles from './styles.module.scss';
|
import { Button } from '~/components/input/Button';
|
||||||
import { OAuthProvider } from '~/types/auth';
|
import { OAuthProvider } from '~/types/auth';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
openOauthWindow: (provider: OAuthProvider) => void;
|
openOauthWindow: (provider: OAuthProvider) => void;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { Button } from '~/components/input/Button';
|
import { Button } from '~/components/input/Button';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {}
|
interface IProps {}
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
import React, { VFC } from 'react';
|
import React, { VFC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { Group } from '~/components/containers/Group';
|
import { Group } from '~/components/containers/Group';
|
||||||
|
import { Button } from '~/components/input/Button';
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import { ERROR_LITERAL, ERRORS } from '~/constants/errors';
|
import { ERROR_LITERAL, ERRORS } from '~/constants/errors';
|
||||||
import { Button } from '~/components/input/Button';
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface RestoreInvalidCodeProps {
|
interface RestoreInvalidCodeProps {
|
||||||
error: string;
|
error: string;
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import React, { VFC } from 'react';
|
import React, { VFC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
|
||||||
import { Button } from '~/components/input/Button';
|
|
||||||
import { Group } from '~/components/containers/Group';
|
import { Group } from '~/components/containers/Group';
|
||||||
|
import { Button } from '~/components/input/Button';
|
||||||
|
import { Icon } from '~/components/input/Icon';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface RestoreSentProps {
|
interface RestoreSentProps {
|
||||||
onClose: () => void;
|
onClose: () => void;
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { VFC } from 'react';
|
import React, { VFC } from 'react';
|
||||||
import { Icon } from '~/components/input/Icon';
|
|
||||||
import { Button } from '~/components/input/Button';
|
|
||||||
import { Group } from '~/components/containers/Group';
|
import { Group } from '~/components/containers/Group';
|
||||||
|
import { Button } from '~/components/input/Button';
|
||||||
|
import { Icon } from '~/components/input/Icon';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface RestoreSuccessProps {
|
interface RestoreSuccessProps {
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
import React, { useCallback, VFC } from 'react';
|
import React, { useCallback, VFC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
import { path } from 'ramda';
|
||||||
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import { PlayerState } from '~/constants/player';
|
import { PlayerState } from '~/constants/player';
|
||||||
import { path } from 'ramda';
|
|
||||||
import { IFile } from '~/types';
|
import { IFile } from '~/types';
|
||||||
import { PlayerProgress } from '~/types/player';
|
import { PlayerProgress } from '~/types/player';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
progress: PlayerProgress;
|
progress: PlayerProgress;
|
||||||
status: PlayerState;
|
status: PlayerState;
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
import React, { FC, useCallback, useState } from 'react';
|
import React, { FC, useCallback, useState } from 'react';
|
||||||
import { Icon } from '~/components/input/Icon';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { useShowModal } from '~/hooks/modal/useShowModal';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import { Dialog } from '~/constants/modal';
|
import { Dialog } from '~/constants/modal';
|
||||||
|
import { useShowModal } from '~/hooks/modal/useShowModal';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
isLab?: boolean;
|
isLab?: boolean;
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
icon: string;
|
icon: string;
|
||||||
title: string;
|
title: string;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { BorisContactItem } from '~/components/boris/BorisContactItem';
|
import { BorisContactItem } from '~/components/boris/BorisContactItem';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props {}
|
interface Props {}
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from '~/layouts/BorisLayout/styles.module.scss';
|
|
||||||
import { BorisSuperpowers } from '~/components/boris/BorisSuperpowers';
|
|
||||||
import { BorisContacts } from '~/components/boris/BorisContacts';
|
import { BorisContacts } from '~/components/boris/BorisContacts';
|
||||||
import { BorisStats } from '~/components/boris/BorisStats';
|
import { BorisStats } from '~/components/boris/BorisStats';
|
||||||
|
import { BorisSuperpowers } from '~/components/boris/BorisSuperpowers';
|
||||||
import { Group } from '~/components/containers/Group';
|
import { Group } from '~/components/containers/Group';
|
||||||
|
import styles from '~/layouts/BorisLayout/styles.module.scss';
|
||||||
import { BorisUsageStats } from '~/types/boris';
|
import { BorisUsageStats } from '~/types/boris';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { BorisUsageStats } from '~/types/boris';
|
import { BorisUsageStats } from '~/types/boris';
|
||||||
import { BorisStatsGit } from '../BorisStatsGit';
|
|
||||||
import { BorisStatsBackend } from '../BorisStatsBackend';
|
import { BorisStatsBackend } from '../BorisStatsBackend';
|
||||||
|
import { BorisStatsGit } from '../BorisStatsGit';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
stats: BorisUsageStats;
|
stats: BorisUsageStats;
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import { StatBackend } from '~/types/boris';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { sizeOf } from '~/utils/dom';
|
|
||||||
import { StatsRow } from '~/components/common/StatsRow';
|
import { StatsRow } from '~/components/common/StatsRow';
|
||||||
import { SubTitle } from '~/components/common/SubTitle';
|
import { SubTitle } from '~/components/common/SubTitle';
|
||||||
|
import { StatBackend } from '~/types/boris';
|
||||||
|
import { sizeOf } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
stats: StatBackend;
|
stats: StatBackend;
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import React, { FC, useMemo } from 'react';
|
import React, { FC, useMemo } from 'react';
|
||||||
import { GithubIssue } from '~/types/boris';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { Placeholder } from '~/components/placeholders/Placeholder';
|
import { Placeholder } from '~/components/placeholders/Placeholder';
|
||||||
|
import { GithubIssue } from '~/types/boris';
|
||||||
|
|
||||||
import { BorisStatsGitCard } from '../BorisStatsGitCard';
|
import { BorisStatsGitCard } from '../BorisStatsGitCard';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
issues: GithubIssue[];
|
issues: GithubIssue[];
|
||||||
isLoading: boolean;
|
isLoading: boolean;
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
import React, { FC, useMemo } from 'react';
|
import React, { FC, useMemo } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { getPrettyDate } from '~/utils/dom';
|
|
||||||
import { GithubIssue } from '~/types/boris';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { GithubIssue } from '~/types/boris';
|
||||||
|
import { getPrettyDate } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
data: GithubIssue;
|
data: GithubIssue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { FC, useCallback } from 'react';
|
import React, { FC, useCallback } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { Toggle } from '~/components/input/Toggle';
|
import { Toggle } from '~/components/input/Toggle';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
active?: boolean;
|
active?: boolean;
|
||||||
onChange?: (val: boolean) => void;
|
onChange?: (val: boolean) => void;
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
import React, { FC, useState } from 'react';
|
import React, { FC, useState } from 'react';
|
||||||
|
|
||||||
import { Card } from '~/components/containers/Card';
|
import { Card } from '~/components/containers/Card';
|
||||||
import styles from './styles.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';
|
import { InputText } from '~/components/input/InputText';
|
||||||
import { useShowModal } from '~/hooks/modal/useShowModal';
|
|
||||||
import { Dialog } from '~/constants/modal';
|
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';
|
||||||
|
|
||||||
interface IProps {}
|
interface IProps {}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { useAuth } from '~/hooks/auth/useAuth';
|
import { useAuth } from '~/hooks/auth/useAuth';
|
||||||
|
|
||||||
interface IProps {}
|
interface IProps {}
|
||||||
|
|
|
@ -1,11 +1,18 @@
|
||||||
import React, { FC, HTMLAttributes, memo } from 'react';
|
import React, { FC, HTMLAttributes, memo } from 'react';
|
||||||
import { CommentWrapper } from '~/components/containers/CommentWrapper';
|
|
||||||
import { IComment, ICommentGroup, IFile } from '~/types';
|
|
||||||
import { CommentContent } from '~/components/comment/CommentContent';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { CommendDeleted } from '../../node/CommendDeleted';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { CommentContent } from '~/components/comment/CommentContent';
|
||||||
|
import { CommentWrapper } from '~/components/containers/CommentWrapper';
|
||||||
import { NEW_COMMENT_CLASSNAME } from '~/constants/comment';
|
import { NEW_COMMENT_CLASSNAME } from '~/constants/comment';
|
||||||
|
import { IComment, ICommentGroup, IFile } from '~/types';
|
||||||
|
|
||||||
|
import { CommendDeleted } from '../../node/CommendDeleted';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
type IProps = HTMLAttributes<HTMLDivElement> & {
|
type IProps = HTMLAttributes<HTMLDivElement> & {
|
||||||
nodeId: number;
|
nodeId: number;
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
import React, { FC, useCallback, useState } from 'react';
|
import React, { FC, useCallback, useState } from 'react';
|
||||||
import { IUser } from '~/types/auth';
|
|
||||||
import { Avatar } from '~/components/common/Avatar';
|
|
||||||
import { path } from 'ramda';
|
import { path } from 'ramda';
|
||||||
import { Manager, Popper, Reference } from 'react-popper';
|
import { Manager, Popper, Reference } from 'react-popper';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
import { Avatar } from '~/components/common/Avatar';
|
||||||
import { useRandomPhrase } from '~/constants/phrases';
|
import { useRandomPhrase } from '~/constants/phrases';
|
||||||
|
import { IUser } from '~/types/auth';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
user: IUser;
|
user: IUser;
|
||||||
|
|
|
@ -1,18 +1,25 @@
|
||||||
import React, { createElement, FC, Fragment, memo, useCallback, useMemo, useState } from 'react';
|
import React, { createElement, FC, Fragment, memo, useCallback, useMemo, useState } from 'react';
|
||||||
import { IComment, IFile } from '~/types';
|
|
||||||
import { append, assocPath, path } from 'ramda';
|
|
||||||
import { formatCommentText, getPrettyDate, getURL } from '~/utils/dom';
|
|
||||||
import { Group } from '~/components/containers/Group';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { UploadType } from '~/constants/uploads';
|
|
||||||
import reduce from 'ramda/es/reduce';
|
|
||||||
import { AudioPlayer } from '~/components/media/AudioPlayer';
|
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { PRESETS } from '~/constants/urls';
|
import { append, assocPath, path } from 'ramda';
|
||||||
import { COMMENT_BLOCK_RENDERERS } from '~/constants/comment';
|
import reduce from 'ramda/es/reduce';
|
||||||
import { CommentMenu } from '../CommentMenu';
|
|
||||||
import { CommentForm } from '~/components/comment/CommentForm';
|
import { CommentForm } from '~/components/comment/CommentForm';
|
||||||
|
import { Group } from '~/components/containers/Group';
|
||||||
|
import { AudioPlayer } from '~/components/media/AudioPlayer';
|
||||||
|
import { COMMENT_BLOCK_RENDERERS } from '~/constants/comment';
|
||||||
|
import { UploadType } from '~/constants/uploads';
|
||||||
|
import { PRESETS } from '~/constants/urls';
|
||||||
|
import { IComment, IFile } from '~/types';
|
||||||
|
import { formatCommentText, getPrettyDate, getURL } from '~/utils/dom';
|
||||||
|
|
||||||
|
import { CommentMenu } from '../CommentMenu';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
nodeId: number;
|
nodeId: number;
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import React, { FC, memo, useMemo } from 'react';
|
import React, { FC, memo, useMemo } from 'react';
|
||||||
import { ICommentBlockProps } from '~/constants/comment';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { getYoutubeThumb } from '~/utils/dom';
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
|
import { ICommentBlockProps } from '~/constants/comment';
|
||||||
import { useYoutubeMetadata } from '~/hooks/metadata/useYoutubeMetadata';
|
import { useYoutubeMetadata } from '~/hooks/metadata/useYoutubeMetadata';
|
||||||
|
import { getYoutubeThumb } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
type Props = ICommentBlockProps & {};
|
type Props = ICommentBlockProps & {};
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,27 @@
|
||||||
import React, { FC, useCallback, useState } from 'react';
|
import React, { FC, useCallback, useState } from 'react';
|
||||||
import { useCommentFormFormik } from '~/hooks/comments/useCommentFormFormik';
|
|
||||||
import { FormikProvider } from 'formik';
|
import { FormikProvider } from 'formik';
|
||||||
import { LocalCommentFormTextarea } from '~/components/comment/LocalCommentFormTextarea';
|
|
||||||
import { Button } from '~/components/input/Button';
|
|
||||||
import { UploadSubject, UploadTarget } from '~/constants/uploads';
|
|
||||||
import { CommentFormAttachButtons } from '~/components/comment/CommentFormAttachButtons';
|
|
||||||
import { CommentFormFormatButtons } from '~/components/comment/CommentFormFormatButtons';
|
|
||||||
import { CommentFormAttaches } from '~/components/comment/CommentFormAttaches';
|
|
||||||
import { LoaderCircle } from '~/components/input/LoaderCircle';
|
|
||||||
import { IComment, INode } from '~/types';
|
|
||||||
import { EMPTY_COMMENT } from '~/constants/node';
|
|
||||||
import { UploadDropzone } from '~/components/upload/UploadDropzone';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { ERROR_LITERAL } from '~/constants/errors';
|
|
||||||
import { useInputPasteUpload } from '~/hooks/dom/useInputPasteUpload';
|
|
||||||
import { Filler } from '~/components/containers/Filler';
|
|
||||||
import { useUploader } from '~/hooks/data/useUploader';
|
|
||||||
import { UploaderContextProvider } from '~/utils/context/UploaderContextProvider';
|
|
||||||
import { observer } from 'mobx-react-lite';
|
import { observer } from 'mobx-react-lite';
|
||||||
|
|
||||||
|
import { CommentFormAttachButtons } from '~/components/comment/CommentFormAttachButtons';
|
||||||
|
import { CommentFormAttaches } from '~/components/comment/CommentFormAttaches';
|
||||||
|
import { CommentFormFormatButtons } from '~/components/comment/CommentFormFormatButtons';
|
||||||
|
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';
|
||||||
|
import { UploadSubject, UploadTarget } from '~/constants/uploads';
|
||||||
|
import { useCommentFormFormik } from '~/hooks/comments/useCommentFormFormik';
|
||||||
|
import { useUploader } from '~/hooks/data/useUploader';
|
||||||
|
import { useInputPasteUpload } from '~/hooks/dom/useInputPasteUpload';
|
||||||
|
import { IComment, INode } from '~/types';
|
||||||
|
import { UploaderContextProvider } from '~/utils/context/UploaderContextProvider';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
comment?: IComment;
|
comment?: IComment;
|
||||||
nodeId: INode['id'];
|
nodeId: INode['id'];
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import React, { FC, useCallback } from 'react';
|
import React, { FC, useCallback } from 'react';
|
||||||
import { ButtonGroup } from '~/components/input/ButtonGroup';
|
|
||||||
import { Button } from '~/components/input/Button';
|
import { Button } from '~/components/input/Button';
|
||||||
|
import { ButtonGroup } from '~/components/input/ButtonGroup';
|
||||||
import { COMMENT_FILE_TYPES } from '~/constants/uploads';
|
import { COMMENT_FILE_TYPES } from '~/constants/uploads';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
import React, { FC, useCallback } from 'react';
|
import React, { FC, useCallback } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { SortableImageGrid } from '~/components/editors/SortableImageGrid';
|
|
||||||
import { SortableAudioGrid } from '~/components/editors/SortableAudioGrid';
|
|
||||||
import { IFile } from '~/types';
|
|
||||||
import { SortEnd } from 'react-sortable-hoc';
|
import { SortEnd } from 'react-sortable-hoc';
|
||||||
import { moveArrItem } from '~/utils/fn';
|
|
||||||
import { useFileDropZone } from '~/hooks';
|
import { SortableAudioGrid } from '~/components/editors/SortableAudioGrid';
|
||||||
|
import { SortableImageGrid } from '~/components/editors/SortableImageGrid';
|
||||||
import { COMMENT_FILE_TYPES } from '~/constants/uploads';
|
import { COMMENT_FILE_TYPES } from '~/constants/uploads';
|
||||||
|
import { useFileDropZone } from '~/hooks';
|
||||||
|
import { IFile } from '~/types';
|
||||||
import { useUploaderContext } from '~/utils/context/UploaderContextProvider';
|
import { useUploaderContext } from '~/utils/context/UploaderContextProvider';
|
||||||
|
import { moveArrItem } from '~/utils/fn';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
const CommentFormAttaches: FC = () => {
|
const CommentFormAttaches: FC = () => {
|
||||||
const {
|
const {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { FC, useCallback, useEffect } from 'react';
|
import React, { FC, useCallback, useEffect } from 'react';
|
||||||
import { ButtonGroup } from '~/components/input/ButtonGroup';
|
|
||||||
import { Button } from '~/components/input/Button';
|
import { Button } from '~/components/input/Button';
|
||||||
|
import { ButtonGroup } from '~/components/input/ButtonGroup';
|
||||||
import { useFormatWrapper, wrapTextInsideInput } from '~/hooks/dom/useFormatWrapper';
|
import { useFormatWrapper, wrapTextInsideInput } from '~/hooks/dom/useFormatWrapper';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC, useCallback, useState } from 'react';
|
import React, { FC, useCallback, useState } from 'react';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
import React, { FC, useMemo } from 'react';
|
import React, { FC, useMemo } from 'react';
|
||||||
import { ICommentBlockProps } from '~/constants/comment';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { ICommentBlockProps } from '~/constants/comment';
|
||||||
import markdown from '~/styles/common/markdown.module.scss';
|
import markdown from '~/styles/common/markdown.module.scss';
|
||||||
import { formatText } from '~/utils/dom';
|
import { formatText } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps extends ICommentBlockProps {}
|
interface IProps extends ICommentBlockProps {}
|
||||||
|
|
||||||
const CommentTextBlock: FC<IProps> = ({ block }) => {
|
const CommentTextBlock: FC<IProps> = ({ block }) => {
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import React, { forwardRef, KeyboardEventHandler, TextareaHTMLAttributes, useCallback } from 'react';
|
import React, { forwardRef, KeyboardEventHandler, TextareaHTMLAttributes, useCallback } from 'react';
|
||||||
|
|
||||||
import { Textarea } from '~/components/input/Textarea';
|
import { Textarea } from '~/components/input/Textarea';
|
||||||
import { useCommentFormContext } from '~/hooks/comments/useCommentFormFormik';
|
|
||||||
import { useRandomPhrase } from '~/constants/phrases';
|
import { useRandomPhrase } from '~/constants/phrases';
|
||||||
|
import { useCommentFormContext } from '~/hooks/comments/useCommentFormFormik';
|
||||||
|
|
||||||
interface IProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
interface IProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
|
||||||
isLoading?: boolean;
|
isLoading?: boolean;
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
import React, { VFC } from 'react';
|
import React, { VFC } from 'react';
|
||||||
import { LinkProps } from '~/utils/types';
|
|
||||||
import { CONFIG } from '~/utils/config';
|
|
||||||
import NextLink from 'next/link';
|
import NextLink from 'next/link';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
|
|
||||||
|
import { CONFIG } from '~/utils/config';
|
||||||
|
import { LinkProps } from '~/utils/types';
|
||||||
|
|
||||||
interface AnchorProps extends LinkProps {}
|
interface AnchorProps extends LinkProps {}
|
||||||
|
|
||||||
const Anchor: VFC<AnchorProps> = ({ ref, href, children, ...rest }) =>
|
const Anchor: VFC<AnchorProps> = ({ ref, href, children, ...rest }) =>
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
import React, { forwardRef, useCallback } from 'react';
|
import React, { forwardRef, useCallback } from 'react';
|
||||||
import { getURLFromString } from '~/utils/dom';
|
|
||||||
import { PRESETS } from '~/constants/urls';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { openUserProfile } from '~/utils/user';
|
|
||||||
import { DivProps } from '~/utils/types';
|
|
||||||
import { Square } from '~/components/common/Square';
|
import { Square } from '~/components/common/Square';
|
||||||
|
import { PRESETS } from '~/constants/urls';
|
||||||
|
import { getURLFromString } from '~/utils/dom';
|
||||||
|
import { DivProps } from '~/utils/types';
|
||||||
|
import { openUserProfile } from '~/utils/user';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
interface Props extends DivProps {
|
interface Props extends DivProps {
|
||||||
url?: string;
|
url?: string;
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import styles from '~/components/flow/FlowCell/styles.module.scss';
|
import styles from '~/components/flow/FlowCell/styles.module.scss';
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import { ButtonProps } from '~/utils/types';
|
import { ButtonProps } from '~/utils/types';
|
||||||
import classNames from 'classnames';
|
|
||||||
|
|
||||||
interface Props extends ButtonProps {}
|
interface Props extends ButtonProps {}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import React, { VFC } from 'react';
|
import React, { VFC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { useScrollTop } from '~/hooks/dom/useScrollTop';
|
|
||||||
import { useScrollHeight } from '~/hooks/dom/useScrollHeight';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { useScrollHeight } from '~/hooks/dom/useScrollHeight';
|
||||||
import { useScrollToBottom } from '~/hooks/dom/useScrollToBottom';
|
import { useScrollToBottom } from '~/hooks/dom/useScrollToBottom';
|
||||||
|
import { useScrollTop } from '~/hooks/dom/useScrollTop';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface ScrollHelperBottomProps {}
|
interface ScrollHelperBottomProps {}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
import React, { forwardRef } from 'react';
|
import React, { forwardRef } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { DivProps } from '~/utils/types';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { DivProps } from '~/utils/types';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface SquareProps extends DivProps {
|
interface SquareProps extends DivProps {
|
||||||
image?: string;
|
image?: string;
|
||||||
size?: number;
|
size?: number;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { Placeholder } from '~/components/placeholders/Placeholder';
|
import { Placeholder } from '~/components/placeholders/Placeholder';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
const StatsRow: FC<{ isLoading: boolean; label: string }> = ({ isLoading, label, children }) => (
|
const StatsRow: FC<{ isLoading: boolean; label: string }> = ({ isLoading, label, children }) => (
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import { Placeholder } from '~/components/placeholders/Placeholder';
|
import { Placeholder } from '~/components/placeholders/Placeholder';
|
||||||
import { DivProps } from '~/utils/types';
|
import { DivProps } from '~/utils/types';
|
||||||
import classNames from 'classnames';
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props extends DivProps {
|
interface Props extends DivProps {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { useAuth } from '~/hooks/auth/useAuth';
|
import { useAuth } from '~/hooks/auth/useAuth';
|
||||||
|
|
||||||
interface IProps {}
|
interface IProps {}
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { AllHTMLAttributes, FC } from 'react';
|
import React, { AllHTMLAttributes, FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = AllHTMLAttributes<HTMLDivElement> & { is_blurred: boolean };
|
type IProps = AllHTMLAttributes<HTMLDivElement> & { is_blurred: boolean };
|
||||||
|
|
||||||
export const BlurWrapper: FC<IProps> = ({ children, is_blurred }) => (
|
export const BlurWrapper: FC<IProps> = ({ children, is_blurred }) => (
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
type IProps = React.HTMLAttributes<HTMLDivElement> & {
|
type IProps = React.HTMLAttributes<HTMLDivElement> & {
|
||||||
seamless?: boolean;
|
seamless?: boolean;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import React, { FC, HTMLAttributes } from 'react';
|
import React, { FC, HTMLAttributes } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
type IProps = HTMLAttributes<HTMLDivElement> & {
|
type IProps = HTMLAttributes<HTMLDivElement> & {
|
||||||
children: any;
|
children: any;
|
||||||
size: number;
|
size: number;
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
import { path } from 'ramda';
|
||||||
|
|
||||||
|
import { CommentAvatar } from '~/components/comment/CommentAvatar';
|
||||||
|
import { IUser } from '~/types/auth';
|
||||||
|
import { DivProps } from '~/utils/types';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
import { IUser } from '~/types/auth';
|
|
||||||
import { path } from 'ramda';
|
|
||||||
import { CommentAvatar } from '~/components/comment/CommentAvatar';
|
|
||||||
import { DivProps } from '~/utils/types';
|
|
||||||
|
|
||||||
type IProps = DivProps & {
|
type IProps = DivProps & {
|
||||||
user: IUser;
|
user: IUser;
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
|
import React, { FC, useCallback, useEffect, useRef, useState } from 'react';
|
||||||
import { IUser } from '~/types/auth';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { getURL } from '~/utils/dom';
|
|
||||||
import { PRESETS } from '~/constants/urls';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { PRESETS } from '~/constants/urls';
|
||||||
|
import { IUser } from '~/types/auth';
|
||||||
|
import { getURL } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
cover: IUser['cover'];
|
cover: IUser['cover'];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = React.HTMLAttributes<HTMLDivElement>;
|
type IProps = React.HTMLAttributes<HTMLDivElement>;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = React.HTMLAttributes<HTMLDivElement> & {
|
type IProps = React.HTMLAttributes<HTMLDivElement> & {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = React.HTMLAttributes<HTMLDivElement> & {
|
type IProps = React.HTMLAttributes<HTMLDivElement> & {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC, HTMLAttributes, useCallback, useEffect, useRef } from 'react';
|
import React, { FC, HTMLAttributes, useCallback, useEffect, useRef } from 'react';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps extends HTMLAttributes<HTMLDivElement> {
|
interface IProps extends HTMLAttributes<HTMLDivElement> {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { DetailedHTMLProps, FC, HTMLAttributes } from 'react';
|
import React, { DetailedHTMLProps, FC, HTMLAttributes } from 'react';
|
||||||
import styles from '~/styles/common/markdown.module.scss';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import styles from '~/styles/common/markdown.module.scss';
|
||||||
|
|
||||||
interface IProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> {}
|
interface IProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> {}
|
||||||
|
|
||||||
const Markdown: FC<IProps> = ({ className, ...props }) => (
|
const Markdown: FC<IProps> = ({ className, ...props }) => (
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
type IProps = React.HTMLAttributes<HTMLDivElement> & {
|
type IProps = React.HTMLAttributes<HTMLDivElement> & {
|
||||||
padding?: number;
|
padding?: number;
|
||||||
vertical?: boolean;
|
vertical?: boolean;
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import React, { createContext, FC, useContext, useState } from 'react';
|
import React, { createContext, FC, useContext, useState } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { createPortal } from 'react-dom';
|
import { createPortal } from 'react-dom';
|
||||||
import { getURL } from '~/utils/dom';
|
|
||||||
import { PRESETS } from '~/constants/urls';
|
import { PRESETS } from '~/constants/urls';
|
||||||
import { IFile } from '~/types';
|
import { IFile } from '~/types';
|
||||||
|
import { getURL } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface CoverContextValue {
|
interface CoverContextValue {
|
||||||
cover: IFile | null;
|
cover: IFile | null;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { IFile } from '~/types';
|
|
||||||
import { usePageCoverContext } from '~/components/containers/PageCoverProvider/index';
|
import { usePageCoverContext } from '~/components/containers/PageCoverProvider/index';
|
||||||
|
import { IFile } from '~/types';
|
||||||
|
|
||||||
export const usePageCover = (cover?: IFile) => {
|
export const usePageCover = (cover?: IFile) => {
|
||||||
const { setCover } = usePageCoverContext();
|
const { setCover } = usePageCoverContext();
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import React, { FC, HTMLAttributes } from 'react';
|
import React, { FC, HTMLAttributes } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
type IProps = HTMLAttributes<HTMLDivElement> & {
|
type IProps = HTMLAttributes<HTMLDivElement> & {
|
||||||
seamless?: boolean;
|
seamless?: boolean;
|
||||||
stretchy?: boolean;
|
stretchy?: boolean;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { DetailsHTMLAttributes, FC } from 'react';
|
import React, { DetailsHTMLAttributes, FC } from 'react';
|
||||||
|
|
||||||
import StickyBox from 'react-sticky-box';
|
import StickyBox from 'react-sticky-box';
|
||||||
|
|
||||||
interface IProps extends DetailsHTMLAttributes<HTMLDivElement> {
|
interface IProps extends DetailsHTMLAttributes<HTMLDivElement> {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC, HTMLAttributes } from 'react';
|
import React, { FC, HTMLAttributes } from 'react';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = HTMLAttributes<HTMLDivElement> & {};
|
type IProps = HTMLAttributes<HTMLDivElement> & {};
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import React, { FC, MouseEventHandler, useEffect, useRef } from 'react';
|
import React, { FC, MouseEventHandler, useEffect, useRef } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { clearAllBodyScrollLocks, disableBodyScroll } from 'body-scroll-lock';
|
import { clearAllBodyScrollLocks, disableBodyScroll } from 'body-scroll-lock';
|
||||||
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import { LoaderCircle } from '~/components/input/LoaderCircle';
|
import { LoaderCircle } from '~/components/input/LoaderCircle';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
children: React.ReactChild;
|
children: React.ReactChild;
|
||||||
header?: JSX.Element;
|
header?: JSX.Element;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC, ReactNode } from 'react';
|
import React, { FC, ReactNode } from 'react';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import React, { FC, MouseEventHandler } from 'react';
|
import React, { FC, MouseEventHandler } from 'react';
|
||||||
|
|
||||||
import ReactDOM from 'react-dom';
|
import ReactDOM from 'react-dom';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = {
|
type IProps = {
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { createContext, FC, useContext, useMemo, useState, VFC } from 'react';
|
import React, { createContext, FC, useContext, useMemo, useState, VFC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface TabProps {
|
interface TabProps {
|
||||||
items: string[];
|
items: string[];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,20 @@
|
||||||
import React, { FC, useCallback, useMemo } from 'react';
|
import React, { FC, useCallback, useMemo } from 'react';
|
||||||
|
|
||||||
|
import { values } from 'ramda';
|
||||||
|
|
||||||
|
import { UploadDropzone } from '~/components/upload/UploadDropzone';
|
||||||
import { UploadType } from '~/constants/uploads';
|
import { UploadType } from '~/constants/uploads';
|
||||||
import { ImageGrid } from '../ImageGrid';
|
|
||||||
import { AudioGrid } from '../AudioGrid';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { NodeEditorProps } from '~/types/node';
|
|
||||||
import { useNodeImages } from '~/hooks/node/useNodeImages';
|
|
||||||
import { useNodeAudios } from '~/hooks/node/useNodeAudios';
|
import { useNodeAudios } from '~/hooks/node/useNodeAudios';
|
||||||
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
||||||
import { UploadDropzone } from '~/components/upload/UploadDropzone';
|
import { useNodeImages } from '~/hooks/node/useNodeImages';
|
||||||
|
import { NodeEditorProps } from '~/types/node';
|
||||||
import { useUploaderContext } from '~/utils/context/UploaderContextProvider';
|
import { useUploaderContext } from '~/utils/context/UploaderContextProvider';
|
||||||
import { values } from 'ramda';
|
|
||||||
|
import { AudioGrid } from '../AudioGrid';
|
||||||
|
import { ImageGrid } from '../ImageGrid';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
type IProps = NodeEditorProps;
|
type IProps = NodeEditorProps;
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,15 @@
|
||||||
import React, { FC, useCallback } from 'react';
|
import React, { FC, useCallback } from 'react';
|
||||||
|
|
||||||
import { SortEnd } from 'react-sortable-hoc';
|
import { SortEnd } from 'react-sortable-hoc';
|
||||||
|
|
||||||
|
import { SortableAudioGrid } from '~/components/editors/SortableAudioGrid';
|
||||||
|
import { useWindowSize } from '~/hooks/dom/useWindowSize';
|
||||||
|
import { UploadStatus } from '~/store/uploader/UploaderStore';
|
||||||
import { IFile } from '~/types';
|
import { IFile } from '~/types';
|
||||||
import { moveArrItem } from '~/utils/fn';
|
import { moveArrItem } from '~/utils/fn';
|
||||||
import { SortableAudioGrid } from '~/components/editors/SortableAudioGrid';
|
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
import { UploadStatus } from '~/store/uploader/UploaderStore';
|
|
||||||
import { useWindowSize } from '~/hooks/dom/useWindowSize';
|
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
files: IFile[];
|
files: IFile[];
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import React, { createElement, FC } from 'react';
|
import React, { createElement, FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { NODE_PANEL_COMPONENTS } from '~/constants/node';
|
|
||||||
import { has } from 'ramda';
|
import { has } from 'ramda';
|
||||||
|
|
||||||
|
import { NODE_PANEL_COMPONENTS } from '~/constants/node';
|
||||||
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
const EditorActionsPanel: FC = () => {
|
const EditorActionsPanel: FC = () => {
|
||||||
const { values } = useNodeFormContext();
|
const { values } = useNodeFormContext();
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { EditorUploadButton } from '~/components/editors/EditorUploadButton';
|
import { EditorUploadButton } from '~/components/editors/EditorUploadButton';
|
||||||
import { UploadType } from '~/constants/uploads';
|
import { UploadType } from '~/constants/uploads';
|
||||||
import { IEditorComponentProps } from '~/types/node';
|
import { IEditorComponentProps } from '~/types/node';
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import { EditorActionsPanel } from '~/components/editors/EditorActionsPanel';
|
|
||||||
import { Group } from '~/components/containers/Group';
|
|
||||||
import { InputText } from '~/components/input/InputText';
|
|
||||||
import { Button } from '~/components/input/Button';
|
|
||||||
import { Padder } from '~/components/containers/Padder';
|
|
||||||
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
|
||||||
import { Filler } from '~/components/containers/Filler';
|
import { Filler } from '~/components/containers/Filler';
|
||||||
|
import { Group } from '~/components/containers/Group';
|
||||||
|
import { Padder } from '~/components/containers/Padder';
|
||||||
|
import { EditorActionsPanel } from '~/components/editors/EditorActionsPanel';
|
||||||
|
import { Button } from '~/components/input/Button';
|
||||||
|
import { InputText } from '~/components/input/InputText';
|
||||||
|
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
||||||
|
|
||||||
const EditorButtons: FC = () => {
|
const EditorButtons: FC = () => {
|
||||||
const { values, handleChange, isSubmitting } = useNodeFormContext();
|
const { values, handleChange, isSubmitting } = useNodeFormContext();
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from './styles.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 styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
onApprove: () => void;
|
onApprove: () => void;
|
||||||
onDecline: () => void;
|
onDecline: () => void;
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { Filler } from '~/components/containers/Filler';
|
import { Filler } from '~/components/containers/Filler';
|
||||||
import { IEditorComponentProps } from '~/types/node';
|
import { IEditorComponentProps } from '~/types/node';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = IEditorComponentProps & {};
|
type IProps = IEditorComponentProps & {};
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
|
|
||||||
import { EditorUploadButton } from '~/components/editors/EditorUploadButton';
|
import { EditorUploadButton } from '~/components/editors/EditorUploadButton';
|
||||||
import { UploadType } from '~/constants/uploads';
|
import { UploadType } from '~/constants/uploads';
|
||||||
import { IEditorComponentProps } from '~/types/node';
|
import { IEditorComponentProps } from '~/types/node';
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
import React, { FC, useCallback } from 'react';
|
import React, { FC, useCallback } from 'react';
|
||||||
import { IEditorComponentProps } from '~/types/node';
|
|
||||||
import { Button } from '~/components/input/Button';
|
import { Button } from '~/components/input/Button';
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
||||||
|
import { IEditorComponentProps } from '~/types/node';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps extends IEditorComponentProps {}
|
interface IProps extends IEditorComponentProps {}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
import React, { ChangeEvent, FC, useCallback } from 'react';
|
import React, { ChangeEvent, FC, useCallback } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
import { Button } from '~/components/input/Button';
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import { UploadType } from '~/constants/uploads';
|
import { UploadType } from '~/constants/uploads';
|
||||||
import { IEditorComponentProps } from '~/types/node';
|
|
||||||
import { getFileType } from '~/utils/uploader';
|
|
||||||
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
||||||
import { Button } from '~/components/input/Button';
|
import { IEditorComponentProps } from '~/types/node';
|
||||||
import { useUploaderContext } from '~/utils/context/UploaderContextProvider';
|
import { useUploaderContext } from '~/utils/context/UploaderContextProvider';
|
||||||
|
import { getFileType } from '~/utils/uploader';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = IEditorComponentProps & {
|
type IProps = IEditorComponentProps & {
|
||||||
accept?: string;
|
accept?: string;
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
import React, { ChangeEvent, FC, useCallback, useEffect } from 'react';
|
import React, { ChangeEvent, FC, useCallback, useEffect } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { UploadSubject, UploadTarget, UploadType } from '~/constants/uploads';
|
|
||||||
import { getURL } from '~/utils/dom';
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
|
import { UploadSubject, UploadTarget, UploadType } from '~/constants/uploads';
|
||||||
import { PRESETS } from '~/constants/urls';
|
import { PRESETS } from '~/constants/urls';
|
||||||
import { IEditorComponentProps } from '~/types/node';
|
|
||||||
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
|
||||||
import { getFileType } from '~/utils/uploader';
|
|
||||||
import { useUploader } from '~/hooks/data/useUploader';
|
import { useUploader } from '~/hooks/data/useUploader';
|
||||||
|
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
||||||
|
import { IEditorComponentProps } from '~/types/node';
|
||||||
|
import { getURL } from '~/utils/dom';
|
||||||
|
import { getFileType } from '~/utils/uploader';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = IEditorComponentProps & {};
|
type IProps = IEditorComponentProps & {};
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import { ImageGrid } from '~/components/editors/ImageGrid';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { NodeEditorProps } from '~/types/node';
|
|
||||||
import { UploadDropzone } from '~/components/upload/UploadDropzone';
|
|
||||||
import { useUploaderContext } from '~/utils/context/UploaderContextProvider';
|
|
||||||
import { values } from 'ramda';
|
import { values } from 'ramda';
|
||||||
|
|
||||||
|
import { ImageGrid } from '~/components/editors/ImageGrid';
|
||||||
|
import { UploadDropzone } from '~/components/upload/UploadDropzone';
|
||||||
|
import { NodeEditorProps } from '~/types/node';
|
||||||
|
import { useUploaderContext } from '~/utils/context/UploaderContextProvider';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = NodeEditorProps;
|
type IProps = NodeEditorProps;
|
||||||
|
|
||||||
const ImageEditor: FC<IProps> = () => {
|
const ImageEditor: FC<IProps> = () => {
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
import React, { FC, useCallback } from 'react';
|
import React, { FC, useCallback } from 'react';
|
||||||
|
|
||||||
import { SortEnd } from 'react-sortable-hoc';
|
import { SortEnd } from 'react-sortable-hoc';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
import { SortableImageGrid } from '~/components/editors/SortableImageGrid';
|
||||||
|
import { useWindowSize } from '~/hooks/dom/useWindowSize';
|
||||||
|
import { UploadStatus } from '~/store/uploader/UploaderStore';
|
||||||
import { IFile } from '~/types';
|
import { IFile } from '~/types';
|
||||||
import { moveArrItem } from '~/utils/fn';
|
import { moveArrItem } from '~/utils/fn';
|
||||||
import { SortableImageGrid } from '~/components/editors/SortableImageGrid';
|
|
||||||
import { UploadStatus } from '~/store/uploader/UploaderStore';
|
import styles from './styles.module.scss';
|
||||||
import { useWindowSize } from '~/hooks/dom/useWindowSize';
|
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
files: IFile[];
|
files: IFile[];
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { SortableContainer } from 'react-sortable-hoc';
|
import { SortableContainer } from 'react-sortable-hoc';
|
||||||
import { AudioUpload } from '~/components/upload/AudioUpload';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { SortableAudioGridItem } from '~/components/editors/SortableAudioGridItem';
|
import { SortableAudioGridItem } from '~/components/editors/SortableAudioGridItem';
|
||||||
import { IFile } from '~/types';
|
|
||||||
import { AudioPlayer } from '~/components/media/AudioPlayer';
|
import { AudioPlayer } from '~/components/media/AudioPlayer';
|
||||||
|
import { AudioUpload } from '~/components/upload/AudioUpload';
|
||||||
import { UploadStatus } from '~/store/uploader/UploaderStore';
|
import { UploadStatus } from '~/store/uploader/UploaderStore';
|
||||||
|
import { IFile } from '~/types';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
const SortableAudioGrid = SortableContainer(
|
const SortableAudioGrid = SortableContainer(
|
||||||
({
|
({
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { SortableElement } from 'react-sortable-hoc';
|
import { SortableElement } from 'react-sortable-hoc';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
|
|
||||||
|
import classNames from 'classnames';
|
||||||
import { SortableContainer } from 'react-sortable-hoc';
|
import { SortableContainer } from 'react-sortable-hoc';
|
||||||
import { ImageUpload } from '~/components/upload/ImageUpload';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { SortableImageGridItem } from '~/components/editors/SortableImageGridItem';
|
import { SortableImageGridItem } from '~/components/editors/SortableImageGridItem';
|
||||||
|
import { ImageUpload } from '~/components/upload/ImageUpload';
|
||||||
|
import { PRESETS } from '~/constants/urls';
|
||||||
|
import { UploadStatus } from '~/store/uploader/UploaderStore';
|
||||||
import { IFile } from '~/types';
|
import { IFile } from '~/types';
|
||||||
import { getURL } from '~/utils/dom';
|
import { getURL } from '~/utils/dom';
|
||||||
import { PRESETS } from '~/constants/urls';
|
|
||||||
import classNames from 'classnames';
|
import styles from './styles.module.scss';
|
||||||
import { UploadStatus } from '~/store/uploader/UploaderStore';
|
|
||||||
|
|
||||||
const SortableImageGrid = SortableContainer(
|
const SortableImageGrid = SortableContainer(
|
||||||
({
|
({
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { SortableElement } from 'react-sortable-hoc';
|
import { SortableElement } from 'react-sortable-hoc';
|
||||||
|
|
||||||
import styles from './styles.module.scss';
|
import styles from './styles.module.scss';
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
import React, { FC, useCallback } from 'react';
|
import React, { FC, useCallback } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { Textarea } from '~/components/input/Textarea';
|
|
||||||
import { path } from 'ramda';
|
import { path } from 'ramda';
|
||||||
import { NodeEditorProps } from '~/types/node';
|
|
||||||
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
import { Textarea } from '~/components/input/Textarea';
|
||||||
import { useRandomPhrase } from '~/constants/phrases';
|
import { useRandomPhrase } from '~/constants/phrases';
|
||||||
|
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
||||||
|
import { NodeEditorProps } from '~/types/node';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = NodeEditorProps & {};
|
type IProps = NodeEditorProps & {};
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
import React, { FC, useCallback, useMemo } from 'react';
|
import React, { FC, useCallback, useMemo } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { path } from 'ramda';
|
|
||||||
import { InputText } from '~/components/input/InputText';
|
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import { getYoutubeThumb } from '~/utils/dom';
|
import { path } from 'ramda';
|
||||||
import { NodeEditorProps } from '~/types/node';
|
|
||||||
|
import { InputText } from '~/components/input/InputText';
|
||||||
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
import { useNodeFormContext } from '~/hooks/node/useNodeFormFormik';
|
||||||
|
import { NodeEditorProps } from '~/types/node';
|
||||||
|
import { getYoutubeThumb } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
type IProps = NodeEditorProps & {};
|
type IProps = NodeEditorProps & {};
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
import React, { FC, useMemo } from 'react';
|
import React, { FC, useMemo } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { DEFAULT_DOMINANT_COLOR } from '~/constants/node';
|
|
||||||
import { DivProps } from '~/utils/types';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { transparentize } from 'color2k';
|
import { transparentize } from 'color2k';
|
||||||
|
|
||||||
|
import { DEFAULT_DOMINANT_COLOR } from '~/constants/node';
|
||||||
import { normalizeBrightColor } from '~/utils/color';
|
import { normalizeBrightColor } from '~/utils/color';
|
||||||
|
import { DivProps } from '~/utils/types';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props extends DivProps {
|
interface Props extends DivProps {
|
||||||
color?: string;
|
color?: string;
|
||||||
|
|
|
@ -1,15 +1,18 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { CellShade } from '~/components/flow/CellShade';
|
|
||||||
import { FlowDisplay, INode } from '~/types';
|
|
||||||
import { FlowCellText } from '~/components/flow/FlowCellText';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { FlowCellMenu } from '~/components/flow/FlowCellMenu';
|
|
||||||
import { useFlowCellControls } from '~/hooks/flow/useFlowCellControls';
|
|
||||||
import { useClickOutsideFocus } from '~/hooks/dom/useClickOutsideFocus';
|
|
||||||
import { MenuDots } from '~/components/common/MenuDots';
|
|
||||||
import { FlowCellImage } from '~/components/flow/FlowCellImage';
|
|
||||||
import { Anchor } from '~/components/common/Anchor';
|
import { Anchor } from '~/components/common/Anchor';
|
||||||
|
import { MenuDots } from '~/components/common/MenuDots';
|
||||||
|
import { CellShade } from '~/components/flow/CellShade';
|
||||||
|
import { FlowCellImage } from '~/components/flow/FlowCellImage';
|
||||||
|
import { FlowCellMenu } from '~/components/flow/FlowCellMenu';
|
||||||
|
import { FlowCellText } from '~/components/flow/FlowCellText';
|
||||||
|
import { useClickOutsideFocus } from '~/hooks/dom/useClickOutsideFocus';
|
||||||
|
import { useFlowCellControls } from '~/hooks/flow/useFlowCellControls';
|
||||||
|
import { FlowDisplay, INode } from '~/types';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
id: INode['id'];
|
id: INode['id'];
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import { IMGProps } from '~/utils/types';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { IMGProps } from '~/utils/types';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props extends IMGProps {
|
interface Props extends IMGProps {
|
||||||
height?: number;
|
height?: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import LazyLoad from 'react-lazyload';
|
|
||||||
import { IMGProps } from '~/utils/types';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
import LazyLoad from 'react-lazyload';
|
||||||
|
|
||||||
|
import { IMGProps } from '~/utils/types';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props extends IMGProps {
|
interface Props extends IMGProps {
|
||||||
height?: number;
|
height?: number;
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { Toggle } from '~/components/input/Toggle';
|
|
||||||
import { Group } from '~/components/containers/Group';
|
import { Group } from '~/components/containers/Group';
|
||||||
|
import { Icon } from '~/components/input/Icon';
|
||||||
|
import { Toggle } from '~/components/input/Toggle';
|
||||||
import { FlowDisplayVariant } from '~/types';
|
import { FlowDisplayVariant } from '~/types';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
onClose: () => void;
|
onClose: () => void;
|
||||||
currentView: FlowDisplayVariant;
|
currentView: FlowDisplayVariant;
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
import React, { FC, ReactElement } from 'react';
|
import React, { FC, ReactElement } from 'react';
|
||||||
import { Markdown } from '~/components/containers/Markdown';
|
|
||||||
import { DivProps } from '~/utils/types';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
import { Markdown } from '~/components/containers/Markdown';
|
||||||
import { formatText } from '~/utils/dom';
|
import { formatText } from '~/utils/dom';
|
||||||
|
import { DivProps } from '~/utils/types';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
interface Props extends DivProps {
|
interface Props extends DivProps {
|
||||||
children: string;
|
children: string;
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
import React, { FC, Fragment } from 'react';
|
import React, { FC, Fragment } from 'react';
|
||||||
|
|
||||||
|
import classNames from 'classnames';
|
||||||
|
|
||||||
|
import { FlowCell } from '~/components/flow/FlowCell';
|
||||||
|
import { PRESETS, URLS } from '~/constants/urls';
|
||||||
import { FlowDisplay, IFlowNode, INode } from '~/types';
|
import { FlowDisplay, IFlowNode, INode } from '~/types';
|
||||||
import { IUser } from '~/types/auth';
|
import { IUser } from '~/types/auth';
|
||||||
import { PRESETS, URLS } from '~/constants/urls';
|
|
||||||
import { FlowCell } from '~/components/flow/FlowCell';
|
|
||||||
import classNames from 'classnames';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { getURLFromString } from '~/utils/dom';
|
import { getURLFromString } from '~/utils/dom';
|
||||||
import { canEditNode } from '~/utils/node';
|
import { canEditNode } from '~/utils/node';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
nodes: IFlowNode[];
|
nodes: IFlowNode[];
|
||||||
user: Partial<IUser>;
|
user: Partial<IUser>;
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import { FlowRecentItem } from '../FlowRecentItem';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { IFlowNode } from '~/types';
|
import { IFlowNode } from '~/types';
|
||||||
|
|
||||||
|
import { FlowRecentItem } from '../FlowRecentItem';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
recent: IFlowNode[];
|
recent: IFlowNode[];
|
||||||
updated: IFlowNode[];
|
updated: IFlowNode[];
|
||||||
|
|
|
@ -1,12 +1,17 @@
|
||||||
import React, { FC, MouseEventHandler } from 'react';
|
import React, { FC, MouseEventHandler } from 'react';
|
||||||
import { INode } from '~/types';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { URLS } from '~/constants/urls';
|
|
||||||
import { NodeRelatedItem } from '~/components/node/NodeRelatedItem';
|
|
||||||
import { getPrettyDate } from '~/utils/dom';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { Icon } from '~/components/input/Icon';
|
|
||||||
import { Anchor } from '~/components/common/Anchor';
|
import { Anchor } from '~/components/common/Anchor';
|
||||||
|
import { Icon } from '~/components/input/Icon';
|
||||||
|
import { NodeRelatedItem } from '~/components/node/NodeRelatedItem';
|
||||||
|
import { URLS } from '~/constants/urls';
|
||||||
|
import { INode } from '~/types';
|
||||||
|
import { getPrettyDate } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
node: Partial<INode>;
|
node: Partial<INode>;
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { FlowRecentItem } from '../FlowRecentItem';
|
import { InfiniteScroll } from '~/components/containers/InfiniteScroll';
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import { INode } from '~/types';
|
import { INode } from '~/types';
|
||||||
import { InfiniteScroll } from '~/components/containers/InfiniteScroll';
|
|
||||||
|
import { FlowRecentItem } from '../FlowRecentItem';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
isLoading: boolean;
|
isLoading: boolean;
|
||||||
|
|
|
@ -1,17 +1,20 @@
|
||||||
import React, { FC, useCallback, useMemo, useState } from 'react';
|
import React, { FC, useCallback, useMemo, useState } from 'react';
|
||||||
import { Swiper, SwiperSlide } from 'swiper/react';
|
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
|
||||||
import SwiperCore, { Autoplay, EffectFade, Lazy, Navigation } from 'swiper';
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
|
||||||
import { getURLFromString } from '~/utils/dom';
|
|
||||||
import { PRESETS, URLS } from '~/constants/urls';
|
|
||||||
import SwiperClass from 'swiper/types/swiper-class';
|
|
||||||
import { LoaderCircle } from '~/components/input/LoaderCircle';
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { IFlowNode } from '~/types';
|
import SwiperCore, { Autoplay, EffectFade, Lazy, Navigation } from 'swiper';
|
||||||
|
import { Swiper, SwiperSlide } from 'swiper/react';
|
||||||
|
import SwiperClass from 'swiper/types/swiper-class';
|
||||||
|
|
||||||
|
import { Icon } from '~/components/input/Icon';
|
||||||
|
import { LoaderCircle } from '~/components/input/LoaderCircle';
|
||||||
|
import { PRESETS, URLS } from '~/constants/urls';
|
||||||
import { useWindowSize } from '~/hooks/dom/useWindowSize';
|
import { useWindowSize } from '~/hooks/dom/useWindowSize';
|
||||||
import { useNavigation } from '~/hooks/navigation/useNavigation';
|
import { useNavigation } from '~/hooks/navigation/useNavigation';
|
||||||
|
import { IFlowNode } from '~/types';
|
||||||
|
import { getURLFromString } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
SwiperCore.use([EffectFade, Lazy, Autoplay, Navigation]);
|
SwiperCore.use([EffectFade, Lazy, Autoplay, Navigation]);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import React, { FC } from 'react';
|
import React, { FC } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
import { describeArc } from '~/utils/dom';
|
import { describeArc } from '~/utils/dom';
|
||||||
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
size: number;
|
size: number;
|
||||||
progress?: number;
|
progress?: number;
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
import classnames from 'classnames';
|
|
||||||
import React, { ButtonHTMLAttributes, DetailedHTMLProps, FC, memo, useMemo } from 'react';
|
import React, { ButtonHTMLAttributes, DetailedHTMLProps, FC, memo, useMemo } from 'react';
|
||||||
import styles from './styles.module.scss';
|
|
||||||
|
import Tippy from '@tippy.js/react';
|
||||||
|
import classnames from 'classnames';
|
||||||
|
|
||||||
|
|
||||||
import { Icon } from '~/components/input/Icon';
|
import { Icon } from '~/components/input/Icon';
|
||||||
import { IIcon } from '~/types';
|
import { IIcon } from '~/types';
|
||||||
import Tippy from '@tippy.js/react';
|
|
||||||
|
import styles from './styles.module.scss';
|
||||||
|
|
||||||
import 'tippy.js/dist/tippy.css';
|
import 'tippy.js/dist/tippy.css';
|
||||||
|
|
||||||
type IButtonProps = DetailedHTMLProps<
|
type IButtonProps = DetailedHTMLProps<
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue