Update dependencies (again) (#3442)

* Update dependencies
* Upgrade rollup
* Remove all index.ts reexport files
This commit is contained in:
DingDongSoLong4 2023-02-17 00:42:44 +02:00 committed by GitHub
parent a1851b3713
commit bd747317d4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
202 changed files with 1297 additions and 1406 deletions

View file

@ -1,9 +1,7 @@
{ {
"plugins": ["stylelint-order"], "plugins": ["stylelint-order"],
"extends": "stylelint-config-prettier",
"customSyntax": "postcss-scss", "customSyntax": "postcss-scss",
"rules": { "rules": {
"indentation": null,
"at-rule-empty-line-before": [ "at-rule-empty-line-before": [
"always", "always",
{ {
@ -13,14 +11,7 @@
], ],
"at-rule-no-vendor-prefix": true, "at-rule-no-vendor-prefix": true,
"selector-no-vendor-prefix": true, "selector-no-vendor-prefix": true,
"block-closing-brace-newline-after": "always",
"block-closing-brace-newline-before": "always-multi-line",
"block-closing-brace-space-before": "always-single-line",
"block-no-empty": true, "block-no-empty": true,
"block-opening-brace-newline-after": "always-multi-line",
"block-opening-brace-space-after": "always-single-line",
"block-opening-brace-space-before": "always",
"color-hex-case": "lower",
"color-hex-length": "short", "color-hex-length": "short",
"color-no-invalid-hex": true, "color-no-invalid-hex": true,
"comment-empty-line-before": [ "comment-empty-line-before": [
@ -31,43 +22,18 @@
} }
], ],
"comment-whitespace-inside": "always", "comment-whitespace-inside": "always",
"declaration-bang-space-after": "never",
"declaration-bang-space-before": "always",
"declaration-block-no-shorthand-property-overrides": true, "declaration-block-no-shorthand-property-overrides": true,
"declaration-block-semicolon-newline-after": "always-multi-line",
"declaration-block-semicolon-space-after": "always-single-line",
"declaration-block-semicolon-space-before": "never",
"declaration-block-single-line-max-declarations": 1, "declaration-block-single-line-max-declarations": 1,
"declaration-block-trailing-semicolon": "always",
"declaration-colon-space-after": "always-single-line",
"declaration-colon-space-before": "never",
"declaration-no-important": true, "declaration-no-important": true,
"font-family-name-quotes": "always-where-recommended", "font-family-name-quotes": "always-where-recommended",
"function-calc-no-unspaced-operator": true, "function-calc-no-unspaced-operator": true,
"function-comma-newline-after": "always-multi-line",
"function-comma-space-after": "always-single-line",
"function-comma-space-before": "never",
"function-linear-gradient-no-nonstandard-direction": true, "function-linear-gradient-no-nonstandard-direction": true,
"function-parentheses-newline-inside": "always-multi-line",
"function-parentheses-space-inside": "never-single-line",
"function-url-quotes": "always", "function-url-quotes": "always",
"function-whitespace-after": "always",
"length-zero-no-unit": true, "length-zero-no-unit": true,
"max-empty-lines": 1,
"max-nesting-depth": 4, "max-nesting-depth": 4,
"media-feature-colon-space-after": "always",
"media-feature-colon-space-before": "never",
"media-feature-range-operator-space-after": "always",
"media-feature-range-operator-space-before": "always",
"media-query-list-comma-newline-after": "always-multi-line",
"media-query-list-comma-space-after": "always-single-line",
"media-query-list-comma-space-before": "never",
"media-feature-parentheses-space-inside": "never",
"no-descending-specificity": null, "no-descending-specificity": null,
"no-invalid-double-slash-comments": true, "no-invalid-double-slash-comments": true,
"no-missing-end-of-source-newline": true,
"number-max-precision": 3, "number-max-precision": 3,
"number-no-trailing-zeros": true,
"order/order": ["custom-properties", "declarations"], "order/order": ["custom-properties", "declarations"],
"order/properties-alphabetical-order": true, "order/properties-alphabetical-order": true,
"rule-empty-line-before": [ "rule-empty-line-before": [
@ -80,17 +46,10 @@
"selector-max-id": 1, "selector-max-id": 1,
"selector-max-type": 2, "selector-max-type": 2,
"selector-class-pattern": "^(\\.*[A-Z]*[a-z]+)+(-[a-z0-9]+)*$", "selector-class-pattern": "^(\\.*[A-Z]*[a-z]+)+(-[a-z0-9]+)*$",
"selector-combinator-space-after": "always",
"selector-combinator-space-before": "always",
"selector-list-comma-newline-after": "always",
"selector-list-comma-space-before": "never",
"selector-max-universal": 0, "selector-max-universal": 0,
"selector-type-case": "lower", "selector-type-case": "lower",
"selector-pseudo-element-colon-notation": "double", "selector-pseudo-element-colon-notation": "double",
"string-no-newline": true, "string-no-newline": true,
"string-quotes": "double", "time-min-milliseconds": 100
"time-min-milliseconds": 100,
"value-list-comma-space-after": "always-single-line",
"value-list-comma-space-before": "never"
} }
} }

View file

@ -22,18 +22,18 @@
], ],
"dependencies": { "dependencies": {
"@ant-design/react-slick": "^1.0.0", "@ant-design/react-slick": "^1.0.0",
"@apollo/client": "^3.7.4", "@apollo/client": "^3.7.8",
"@formatjs/intl-getcanonicallocales": "^2.0.5", "@formatjs/intl-getcanonicallocales": "^2.0.5",
"@formatjs/intl-locale": "^3.0.11", "@formatjs/intl-locale": "^3.0.11",
"@formatjs/intl-numberformat": "^8.3.3", "@formatjs/intl-numberformat": "^8.3.3",
"@formatjs/intl-pluralrules": "^5.1.8", "@formatjs/intl-pluralrules": "^5.1.8",
"@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/fontawesome-svg-core": "^6.3.0",
"@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.3.0",
"@fortawesome/free-regular-svg-icons": "^6.2.1", "@fortawesome/free-regular-svg-icons": "^6.3.0",
"@fortawesome/free-solid-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.3.0",
"@fortawesome/react-fontawesome": "^0.2.0", "@fortawesome/react-fontawesome": "^0.2.0",
"apollo-upload-client": "^17.0.0", "apollo-upload-client": "^17.0.0",
"axios": "^1.2.5", "axios": "^1.3.3",
"base64-blob": "^1.4.1", "base64-blob": "^1.4.1",
"bootstrap": "^4.6.2", "bootstrap": "^4.6.2",
"classnames": "^2.3.2", "classnames": "^2.3.2",
@ -42,7 +42,7 @@
"formik": "^2.2.9", "formik": "^2.2.9",
"graphql": "^16.6.0", "graphql": "^16.6.0",
"graphql-tag": "^2.12.6", "graphql-tag": "^2.12.6",
"graphql-ws": "^5.11.2", "graphql-ws": "^5.11.3",
"i18n-iso-countries": "^7.5.0", "i18n-iso-countries": "^7.5.0",
"intersection-observer": "^0.12.2", "intersection-observer": "^0.12.2",
"localforage": "^1.10.0", "localforage": "^1.10.0",
@ -54,12 +54,12 @@
"react-bootstrap": "^1.6.6", "react-bootstrap": "^1.6.6",
"react-dom": "^17.0.2", "react-dom": "^17.0.2",
"react-helmet": "^6.1.0", "react-helmet": "^6.1.0",
"react-intl": "^6.2.6", "react-intl": "^6.2.8",
"react-markdown": "^8.0.5", "react-markdown": "^8.0.5",
"react-router-bootstrap": "^0.25.0", "react-router-bootstrap": "^0.25.0",
"react-router-dom": "^5.3.4", "react-router-dom": "^5.3.4",
"react-router-hash-link": "^2.4.3", "react-router-hash-link": "^2.4.3",
"react-select": "^5.6.1", "react-select": "^5.7.0",
"remark-gfm": "^3.0.1", "remark-gfm": "^3.0.1",
"resize-observer-polyfill": "^1.5.1", "resize-observer-polyfill": "^1.5.1",
"slick-carousel": "^1.8.1", "slick-carousel": "^1.8.1",
@ -70,49 +70,48 @@
"videojs-mobile-ui": "^0.8.0", "videojs-mobile-ui": "^0.8.0",
"videojs-seek-buttons": "^3.0.1", "videojs-seek-buttons": "^3.0.1",
"videojs-vtt.js": "^0.15.4", "videojs-vtt.js": "^0.15.4",
"yup": "^0.32.11" "yup": "^1.0.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.20.5", "@babel/core": "^7.20.12",
"@graphql-codegen/cli": "^2.16.4", "@graphql-codegen/cli": "^3.0.0",
"@graphql-codegen/time": "^3.2.3", "@graphql-codegen/time": "^4.0.0",
"@graphql-codegen/typescript": "^2.8.7", "@graphql-codegen/typescript": "^3.0.0",
"@graphql-codegen/typescript-operations": "^2.5.12", "@graphql-codegen/typescript-operations": "^3.0.0",
"@graphql-codegen/typescript-react-apollo": "^3.3.7", "@graphql-codegen/typescript-react-apollo": "^3.3.7",
"@types/apollo-upload-client": "^17.0.2", "@types/apollo-upload-client": "^17.0.2",
"@types/lodash-es": "^4.17.6", "@types/lodash-es": "^4.17.6",
"@types/mousetrap": "^1.6.11", "@types/mousetrap": "^1.6.11",
"@types/node": "^14.18.36", "@types/node": "^18.13.0",
"@types/react": "^17.0.53", "@types/react": "^17.0.53",
"@types/react-dom": "^17.0.18", "@types/react-dom": "^17.0.19",
"@types/react-helmet": "^6.1.6", "@types/react-helmet": "^6.1.6",
"@types/react-router-bootstrap": "^0.24.5", "@types/react-router-bootstrap": "^0.24.5",
"@types/react-router-hash-link": "^2.4.5", "@types/react-router-hash-link": "^2.4.5",
"@types/video.js": "^7.3.50", "@types/video.js": "^7.3.51",
"@types/videojs-mobile-ui": "^0.5.0", "@types/videojs-mobile-ui": "^0.5.0",
"@types/videojs-seek-buttons": "^2.1.0", "@types/videojs-seek-buttons": "^2.1.0",
"@typescript-eslint/eslint-plugin": "^5.49.0", "@typescript-eslint/eslint-plugin": "^5.52.0",
"@typescript-eslint/parser": "^5.49.0", "@typescript-eslint/parser": "^5.52.0",
"@vitejs/plugin-react": "^3.0.1", "@vitejs/plugin-react": "^3.1.0",
"eslint": "^8.32.0", "eslint": "^8.34.0",
"eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^17.0.0", "eslint-config-airbnb-typescript": "^17.0.0",
"eslint-config-prettier": "^8.6.0", "eslint-config-prettier": "^8.6.0",
"eslint-plugin-import": "^2.27.5", "eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.32.1", "eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"extract-react-intl-messages": "^4.1.1", "extract-react-intl-messages": "^4.1.1",
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-scss": "^4.0.6", "postcss-scss": "^4.0.6",
"prettier": "^2.8.3", "prettier": "^2.8.4",
"sass": "^1.57.1", "sass": "^1.58.1",
"stylelint": "^14.16.1", "stylelint": "^15.1.0",
"stylelint-config-prettier": "^9.0.4", "stylelint-order": "^6.0.2",
"stylelint-order": "^6.0.1",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typescript": "~4.8.4", "typescript": "~4.8.4",
"vite": "^4.0.4", "vite": "^4.1.1",
"vite-plugin-compression": "^0.5.1", "vite-plugin-compression": "^0.5.1",
"vite-tsconfig-paths": "^4.0.5" "vite-tsconfig-paths": "^4.0.5"
} }

View file

@ -5,7 +5,7 @@ import { Helmet } from "react-helmet";
import cloneDeep from "lodash-es/cloneDeep"; import cloneDeep from "lodash-es/cloneDeep";
import mergeWith from "lodash-es/mergeWith"; import mergeWith from "lodash-es/mergeWith";
import { ToastProvider } from "src/hooks/Toast"; import { ToastProvider } from "src/hooks/Toast";
import LightboxProvider from "src/hooks/Lightbox/context"; import { LightboxProvider } from "src/hooks/Lightbox/context";
import { initPolyfills } from "src/polyfills"; import { initPolyfills } from "src/polyfills";
import locales, { registerCountry } from "src/locales"; import locales, { registerCountry } from "src/locales";
@ -14,14 +14,15 @@ import {
useConfigureUI, useConfigureUI,
useSystemStatus, useSystemStatus,
} from "src/core/StashService"; } from "src/core/StashService";
import { flattenMessages } from "src/utils"; import flattenMessages from "./utils/flattenMessages";
import Mousetrap from "mousetrap"; import Mousetrap from "mousetrap";
import MousetrapPause from "mousetrap-pause"; import MousetrapPause from "mousetrap-pause";
import { ErrorBoundary } from "./components/ErrorBoundary"; import { ErrorBoundary } from "./components/ErrorBoundary";
import { MainNavbar } from "./components/MainNavbar"; import { MainNavbar } from "./components/MainNavbar";
import { PageNotFound } from "./components/PageNotFound"; import { PageNotFound } from "./components/PageNotFound";
import * as GQL from "./core/generated-graphql"; import * as GQL from "./core/generated-graphql";
import { LoadingIndicator, TITLE_SUFFIX } from "./components/Shared"; import { TITLE_SUFFIX } from "./components/Shared/constants";
import { LoadingIndicator } from "./components/Shared/LoadingIndicator";
import { ConfigurationProvider } from "./hooks/Config"; import { ConfigurationProvider } from "./hooks/Config";
import { ManualProvider } from "./components/Help/context"; import { ManualProvider } from "./components/Help/context";

View file

@ -1,5 +1,5 @@
import React from "react"; import React from "react";
import { useChangelogStorage } from "src/hooks"; import { useChangelogStorage } from "src/hooks/LocalForage";
import Version from "./Version"; import Version from "./Version";
import V010 from "src/docs/en/Changelog/v010.md"; import V010 from "src/docs/en/Changelog/v010.md";
import V011 from "src/docs/en/Changelog/v011.md"; import V011 from "src/docs/en/Changelog/v011.md";

View file

@ -2,7 +2,7 @@ import { faAngleDown, faAngleUp } from "@fortawesome/free-solid-svg-icons";
import React, { useState } from "react"; import React, { useState } from "react";
import { Button, Card, Collapse } from "react-bootstrap"; import { Button, Card, Collapse } from "react-bootstrap";
import { FormattedDate, FormattedMessage } from "react-intl"; import { FormattedDate, FormattedMessage } from "react-intl";
import { Icon } from "src/components/Shared"; import { Icon } from "src/components/Shared/Icon";
interface IVersionProps { interface IVersionProps {
version: string; version: string;

View file

@ -1,13 +1,14 @@
import React, { useState, useEffect, useMemo } from "react"; import React, { useState, useEffect, useMemo } from "react";
import { Form, Button } from "react-bootstrap"; import { Form, Button } from "react-bootstrap";
import { mutateMetadataGenerate } from "src/core/StashService"; import { mutateMetadataGenerate } from "src/core/StashService";
import { Modal, Icon } from "src/components/Shared"; import { ModalComponent } from "../Shared/Modal";
import { useToast } from "src/hooks"; import { Icon } from "src/components/Shared/Icon";
import { useToast } from "src/hooks/Toast";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { Manual } from "../Help/Manual"; import { Manual } from "../Help/Manual";
import { withoutTypename } from "src/utils"; import { withoutTypename } from "src/utils/data";
import { GenerateOptions } from "../Settings/Tasks/GenerateOptions"; import { GenerateOptions } from "../Settings/Tasks/GenerateOptions";
import { SettingSection } from "../Settings/SettingSection"; import { SettingSection } from "../Settings/SettingSection";
import { faCogs, faQuestionCircle } from "@fortawesome/free-solid-svg-icons"; import { faCogs, faQuestionCircle } from "@fortawesome/free-solid-svg-icons";
@ -169,7 +170,7 @@ export const GenerateDialog: React.FC<ISceneGenerateDialog> = ({
} }
return ( return (
<Modal <ModalComponent
show show
modalProps={{ animation, size: "lg" }} modalProps={{ animation, size: "lg" }}
icon={faCogs} icon={faCogs}
@ -203,7 +204,7 @@ export const GenerateDialog: React.FC<ISceneGenerateDialog> = ({
/> />
</SettingSection> </SettingSection>
</Form> </Form>
</Modal> </ModalComponent>
); );
}; };

View file

@ -1,6 +1,6 @@
import React, { useState, useEffect, useCallback } from "react"; import React, { useState, useEffect, useCallback } from "react";
import { Form, Button, Table } from "react-bootstrap"; import { Form, Button, Table } from "react-bootstrap";
import { Icon } from "src/components/Shared"; import { Icon } from "src/components/Shared/Icon";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { import {

View file

@ -6,11 +6,13 @@ import {
useConfigureDefaults, useConfigureDefaults,
useListSceneScrapers, useListSceneScrapers,
} from "src/core/StashService"; } from "src/core/StashService";
import { Icon, Modal, OperationButton } from "src/components/Shared"; import { Icon } from "src/components/Shared/Icon";
import { useToast } from "src/hooks"; import { ModalComponent } from "src/components/Shared/Modal";
import { OperationButton } from "src/components/Shared/OperationButton";
import { useToast } from "src/hooks/Toast";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { withoutTypename } from "src/utils"; import { withoutTypename } from "src/utils/data";
import { import {
SCRAPER_PREFIX, SCRAPER_PREFIX,
STASH_BOX_PREFIX, STASH_BOX_PREFIX,
@ -403,7 +405,7 @@ export const IdentifyDialog: React.FC<IIdentifyDialogProps> = ({
} }
return ( return (
<Modal <ModalComponent
modalProps={{ animation, size: "lg" }} modalProps={{ animation, size: "lg" }}
show show
icon={faCogs} icon={faCogs}
@ -451,7 +453,7 @@ export const IdentifyDialog: React.FC<IIdentifyDialogProps> = ({
setEditingField={(v) => setEditingField(v)} setEditingField={(v) => setEditingField(v)}
/> />
</Form> </Form>
</Modal> </ModalComponent>
); );
}; };

View file

@ -1,6 +1,7 @@
import React, { useState, useEffect } from "react"; import React, { useState, useEffect } from "react";
import { Form, Button, ListGroup } from "react-bootstrap"; import { Form, Button, ListGroup } from "react-bootstrap";
import { Modal, Icon } from "src/components/Shared"; import { ModalComponent } from "src/components/Shared/Modal";
import { Icon } from "src/components/Shared/Icon";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { IScraperSource } from "./constants"; import { IScraperSource } from "./constants";
@ -53,7 +54,7 @@ export const SourcesEditor: React.FC<ISourceEditor> = ({
} }
return ( return (
<Modal <ModalComponent
dialogClassName="identify-source-editor" dialogClassName="identify-source-editor"
modalProps={{ animation: false, size: "lg" }} modalProps={{ animation: false, size: "lg" }}
show show
@ -107,7 +108,7 @@ export const SourcesEditor: React.FC<ISourceEditor> = ({
defaultOptions={defaultOptions} defaultOptions={defaultOptions}
/> />
</Form> </Form>
</Modal> </ModalComponent>
); );
}; };

View file

@ -1,6 +1,6 @@
import React from "react"; import React from "react";
import { Form } from "react-bootstrap"; import { Form } from "react-bootstrap";
import { Modal } from "src/components/Shared"; import { ModalComponent } from "../Shared/Modal";
import { faCogs } from "@fortawesome/free-solid-svg-icons"; import { faCogs } from "@fortawesome/free-solid-svg-icons";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { MarkdownPage } from "../Shared/MarkdownPage"; import { MarkdownPage } from "../Shared/MarkdownPage";
@ -17,7 +17,7 @@ export const ReleaseNotesDialog: React.FC<IReleaseNotesDialog> = ({
const intl = useIntl(); const intl = useIntl();
return ( return (
<Modal <ModalComponent
show show
icon={faCogs} icon={faCogs}
header={intl.formatMessage({ id: "release_notes" })} header={intl.formatMessage({ id: "release_notes" })}
@ -31,7 +31,7 @@ export const ReleaseNotesDialog: React.FC<IReleaseNotesDialog> = ({
<MarkdownPage page={n} key={i} /> <MarkdownPage page={n} key={i} />
))} ))}
</Form> </Form>
</Modal> </ModalComponent>
); );
}; };

View file

@ -2,8 +2,8 @@ import React, { useState } from "react";
import { useMutation, DocumentNode } from "@apollo/client"; import { useMutation, DocumentNode } from "@apollo/client";
import { Button, Form } from "react-bootstrap"; import { Button, Form } from "react-bootstrap";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Modal } from "src/components/Shared"; import { ModalComponent } from "src/components/Shared/Modal";
import { getStashboxBase } from "src/utils"; import { getStashboxBase } from "src/utils/stashbox";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { faPaperPlane } from "@fortawesome/free-solid-svg-icons"; import { faPaperPlane } from "@fortawesome/free-solid-svg-icons";
@ -78,7 +78,7 @@ export const SubmitStashBoxDraft: React.FC<IProps> = ({
undefined; undefined;
return ( return (
<Modal <ModalComponent
icon={faPaperPlane} icon={faPaperPlane}
header={intl.formatMessage({ id: "actions.submit_stash_box" })} header={intl.formatMessage({ id: "actions.submit_stash_box" })}
isRunning={loading} isRunning={loading}
@ -153,7 +153,7 @@ export const SubmitStashBoxDraft: React.FC<IProps> = ({
<div>{error.message}</div> <div>{error.message}</div>
</> </>
)} )}
</Modal> </ModalComponent>
); );
}; };

View file

@ -1,10 +1,10 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { useConfigureUI } from "src/core/StashService"; import { useConfigureUI } from "src/core/StashService";
import { LoadingIndicator } from "src/components/Shared"; import { LoadingIndicator } from "../Shared/LoadingIndicator";
import { Button } from "react-bootstrap"; import { Button } from "react-bootstrap";
import { FrontPageConfig } from "./FrontPageConfig"; import { FrontPageConfig } from "./FrontPageConfig";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { Control } from "./Control"; import { Control } from "./Control";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { import {

View file

@ -1,7 +1,7 @@
import React, { useEffect, useMemo, useState } from "react"; import React, { useEffect, useMemo, useState } from "react";
import { FormattedMessage, IntlShape, useIntl } from "react-intl"; import { FormattedMessage, IntlShape, useIntl } from "react-intl";
import { useFindSavedFilters } from "src/core/StashService"; import { useFindSavedFilters } from "src/core/StashService";
import { LoadingIndicator } from "src/components/Shared"; import { LoadingIndicator } from "../Shared/LoadingIndicator";
import { Button, Form, Modal } from "react-bootstrap"; import { Button, Form, Modal } from "react-bootstrap";
import { import {
FilterMode, FilterMode,

View file

@ -2,8 +2,8 @@ import React, { useState } from "react";
import { Form } from "react-bootstrap"; import { Form } from "react-bootstrap";
import { useGalleryDestroy } from "src/core/StashService"; import { useGalleryDestroy } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Modal } from "src/components/Shared"; import { ModalComponent } from "../Shared/Modal";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { faTrashAlt } from "@fortawesome/free-solid-svg-icons"; import { faTrashAlt } from "@fortawesome/free-solid-svg-icons";
@ -119,7 +119,7 @@ export const DeleteGalleriesDialog: React.FC<IDeleteGalleryDialogProps> = (
} }
return ( return (
<Modal <ModalComponent
show show
icon={faTrashAlt} icon={faTrashAlt}
header={header} header={header}
@ -155,6 +155,6 @@ export const DeleteGalleriesDialog: React.FC<IDeleteGalleryDialogProps> = (
onChange={() => setDeleteGenerated(!deleteGenerated)} onChange={() => setDeleteGenerated(!deleteGenerated)}
/> />
</Form> </Form>
</Modal> </ModalComponent>
); );
}; };

View file

@ -4,10 +4,11 @@ import { FormattedMessage, useIntl } from "react-intl";
import isEqual from "lodash-es/isEqual"; import isEqual from "lodash-es/isEqual";
import { useBulkGalleryUpdate } from "src/core/StashService"; import { useBulkGalleryUpdate } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { StudioSelect, Modal } from "src/components/Shared"; import { StudioSelect } from "../Shared/Select";
import { useToast } from "src/hooks"; import { ModalComponent } from "../Shared/Modal";
import { FormUtils } from "src/utils"; import { useToast } from "src/hooks/Toast";
import MultiSet from "../Shared/MultiSet"; import FormUtils from "src/utils/form";
import { MultiSet } from "../Shared/MultiSet";
import { RatingSystem } from "../Shared/Rating/RatingSystem"; import { RatingSystem } from "../Shared/Rating/RatingSystem";
import { import {
getAggregateInputIDs, getAggregateInputIDs,
@ -226,7 +227,7 @@ export const EditGalleriesDialog: React.FC<IListOperationProps> = (
function render() { function render() {
return ( return (
<Modal <ModalComponent
show show
icon={faPencilAlt} icon={faPencilAlt}
header={intl.formatMessage( header={intl.formatMessage(
@ -300,7 +301,7 @@ export const EditGalleriesDialog: React.FC<IListOperationProps> = (
/> />
</Form.Group> </Form.Group>
</Form> </Form>
</Modal> </ModalComponent>
); );
} }

View file

@ -2,7 +2,7 @@ import React from "react";
import { Route, Switch } from "react-router-dom"; import { Route, Switch } from "react-router-dom";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import { TITLE_SUFFIX } from "src/components/Shared"; import { TITLE_SUFFIX } from "../Shared/constants";
import { PersistanceLevel } from "src/hooks/ListHook"; import { PersistanceLevel } from "src/hooks/ListHook";
import Gallery from "./GalleryDetails/Gallery"; import Gallery from "./GalleryDetails/Gallery";
import GalleryCreate from "./GalleryDetails/GalleryCreate"; import GalleryCreate from "./GalleryDetails/GalleryCreate";

View file

@ -2,17 +2,15 @@ import { Button, ButtonGroup } from "react-bootstrap";
import React from "react"; import React from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { import { GridCard } from "../Shared/GridCard";
GridCard, import { HoverPopover } from "../Shared/HoverPopover";
HoverPopover, import { Icon } from "../Shared/Icon";
Icon, import { TagLink } from "../Shared/TagLink";
TagLink, import { TruncatedText } from "../Shared/TruncatedText";
TruncatedText,
} from "src/components/Shared";
import { PopoverCountButton } from "src/components/Shared/PopoverCountButton";
import { NavUtils } from "src/utils";
import { ConfigurationContext } from "src/hooks/Config";
import { PerformerPopoverButton } from "../Shared/PerformerPopoverButton"; import { PerformerPopoverButton } from "../Shared/PerformerPopoverButton";
import { PopoverCountButton } from "../Shared/PopoverCountButton";
import NavUtils from "src/utils/navigation";
import { ConfigurationContext } from "src/hooks/Config";
import { RatingBanner } from "../Shared/RatingBanner"; import { RatingBanner } from "../Shared/RatingBanner";
import { faBox, faPlayCircle, faTag } from "@fortawesome/free-solid-svg-icons"; import { faBox, faPlayCircle, faTag } from "@fortawesome/free-solid-svg-icons";
import { galleryTitle } from "src/core/galleries"; import { galleryTitle } from "src/core/galleries";

View file

@ -9,14 +9,12 @@ import {
useFindGallery, useFindGallery,
useGalleryUpdate, useGalleryUpdate,
} from "src/core/StashService"; } from "src/core/StashService";
import { import { ErrorMessage } from "src/components/Shared/ErrorMessage";
ErrorMessage, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator, import { Icon } from "src/components/Shared/Icon";
Icon, import { Counter } from "src/components/Shared/Counter";
Counter,
} from "src/components/Shared";
import Mousetrap from "mousetrap"; import Mousetrap from "mousetrap";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { OrganizedButton } from "src/components/Scenes/SceneDetails/OrganizedButton"; import { OrganizedButton } from "src/components/Scenes/SceneDetails/OrganizedButton";
import { GalleryEditPanel } from "./GalleryEditPanel"; import { GalleryEditPanel } from "./GalleryEditPanel";
import { GalleryDetailPanel } from "./GalleryDetailPanel"; import { GalleryDetailPanel } from "./GalleryDetailPanel";

View file

@ -5,7 +5,7 @@ import { ListFilterModel } from "src/models/list-filter/filter";
import { ImageList } from "src/components/Images/ImageList"; import { ImageList } from "src/components/Images/ImageList";
import { showWhenSelected } from "src/hooks/ListHook"; import { showWhenSelected } from "src/hooks/ListHook";
import { mutateAddGalleryImages } from "src/core/StashService"; import { mutateAddGalleryImages } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { faPlus } from "@fortawesome/free-solid-svg-icons"; import { faPlus } from "@fortawesome/free-solid-svg-icons";
import { galleryTitle } from "src/core/galleries"; import { galleryTitle } from "src/core/galleries";

View file

@ -2,8 +2,9 @@ import React from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { FormattedDate, FormattedMessage, useIntl } from "react-intl"; import { FormattedDate, FormattedMessage, useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { TagLink, TruncatedText } from "src/components/Shared"; import { TagLink } from "src/components/Shared/TagLink";
import { TruncatedText } from "src/components/Shared/TruncatedText";
import { PerformerCard } from "src/components/Performers/PerformerCard"; import { PerformerCard } from "src/components/Performers/PerformerCard";
import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem";
import { sortPerformers } from "src/core/performers"; import { sortPerformers } from "src/core/performers";

View file

@ -25,13 +25,13 @@ import {
TagSelect, TagSelect,
SceneSelect, SceneSelect,
StudioSelect, StudioSelect,
Icon, } from "src/components/Shared/Select";
LoadingIndicator, import { Icon } from "src/components/Shared/Icon";
URLField, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
} from "src/components/Shared"; import { URLField } from "src/components/Shared/URLField";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { useFormik } from "formik"; import { useFormik } from "formik";
import { FormUtils } from "src/utils"; import FormUtils from "src/utils/form";
import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem";
import { GalleryScrapeDialog } from "./GalleryScrapeDialog"; import { GalleryScrapeDialog } from "./GalleryScrapeDialog";
import { faSyncAlt } from "@fortawesome/free-solid-svg-icons"; import { faSyncAlt } from "@fortawesome/free-solid-svg-icons";

View file

@ -1,12 +1,12 @@
import React, { useMemo, useState } from "react"; import React, { useMemo, useState } from "react";
import { Accordion, Button, Card } from "react-bootstrap"; import { Accordion, Button, Card } from "react-bootstrap";
import { FormattedMessage, FormattedTime } from "react-intl"; import { FormattedMessage, FormattedTime } from "react-intl";
import { TruncatedText } from "src/components/Shared"; import { TruncatedText } from "src/components/Shared/TruncatedText";
import DeleteFilesDialog from "src/components/Shared/DeleteFilesDialog"; import { DeleteFilesDialog } from "src/components/Shared/DeleteFilesDialog";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { mutateGallerySetPrimaryFile } from "src/core/StashService"; import { mutateGallerySetPrimaryFile } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { TextField, URLField } from "src/utils/field"; import { TextField, URLField } from "src/utils/field";
interface IFileInfoPanelProps { interface IFileInfoPanelProps {

View file

@ -5,7 +5,7 @@ import { ListFilterModel } from "src/models/list-filter/filter";
import { ImageList } from "src/components/Images/ImageList"; import { ImageList } from "src/components/Images/ImageList";
import { mutateRemoveGalleryImages } from "src/core/StashService"; import { mutateRemoveGalleryImages } from "src/core/StashService";
import { showWhenSelected, PersistanceLevel } from "src/hooks/ListHook"; import { showWhenSelected, PersistanceLevel } from "src/hooks/ListHook";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { faMinus } from "@fortawesome/free-solid-svg-icons"; import { faMinus } from "@fortawesome/free-solid-svg-icons";
import { galleryTitle } from "src/core/galleries"; import { galleryTitle } from "src/core/galleries";

View file

@ -1,8 +1,11 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { StudioSelect, PerformerSelect } from "src/components/Shared"; import {
StudioSelect,
PerformerSelect,
TagSelect,
} from "src/components/Shared/Select";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { TagSelect } from "src/components/Shared/Select";
import { import {
ScrapeDialog, ScrapeDialog,
ScrapeDialogRow, ScrapeDialogRow,
@ -17,7 +20,7 @@ import {
useTagCreate, useTagCreate,
makePerformerCreateInput, makePerformerCreateInput,
} from "src/core/StashService"; } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
function renderScrapedStudio( function renderScrapedStudio(
result: ScrapeResult<string>, result: ScrapeResult<string>,

View file

@ -8,8 +8,11 @@ import {
FindGalleriesQueryResult, FindGalleriesQueryResult,
SlimGalleryDataFragment, SlimGalleryDataFragment,
} from "src/core/generated-graphql"; } from "src/core/generated-graphql";
import { useGalleriesList } from "src/hooks"; import {
import { showWhenSelected, PersistanceLevel } from "src/hooks/ListHook"; showWhenSelected,
PersistanceLevel,
useGalleriesList,
} from "src/hooks/ListHook";
import { ListFilterModel } from "src/models/list-filter/filter"; import { ListFilterModel } from "src/models/list-filter/filter";
import { DisplayMode } from "src/models/list-filter/types"; import { DisplayMode } from "src/models/list-filter/types";
import { queryFindGalleries } from "src/core/StashService"; import { queryFindGalleries } from "src/core/StashService";

View file

@ -1,6 +1,6 @@
import React, { useMemo } from "react"; import React, { useMemo } from "react";
import { useLightbox } from "src/hooks"; import { useLightbox } from "src/hooks/Lightbox/hooks";
import { LoadingIndicator } from "src/components/Shared"; import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
import "flexbin/flexbin.css"; import "flexbin/flexbin.css";
import { import {
CriterionModifier, CriterionModifier,

View file

@ -2,9 +2,9 @@ import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { TruncatedText } from "src/components/Shared"; import { TruncatedText } from "src/components/Shared/TruncatedText";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { useGalleryLightbox } from "src/hooks"; import { useGalleryLightbox } from "src/hooks/Lightbox/hooks";
import { galleryTitle } from "src/core/galleries"; import { galleryTitle } from "src/core/galleries";
import { RatingSystem } from "../Shared/Rating/RatingSystem"; import { RatingSystem } from "../Shared/Rating/RatingSystem";

View file

@ -2,8 +2,8 @@ import React, { useState } from "react";
import { Form } from "react-bootstrap"; import { Form } from "react-bootstrap";
import { useImagesDestroy } from "src/core/StashService"; import { useImagesDestroy } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Modal } from "src/components/Shared"; import { ModalComponent } from "src/components/Shared/Modal";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { faTrashAlt } from "@fortawesome/free-solid-svg-icons"; import { faTrashAlt } from "@fortawesome/free-solid-svg-icons";
@ -112,7 +112,7 @@ export const DeleteImagesDialog: React.FC<IDeleteImageDialogProps> = (
} }
return ( return (
<Modal <ModalComponent
show show
icon={faTrashAlt} icon={faTrashAlt}
header={header} header={header}
@ -146,6 +146,6 @@ export const DeleteImagesDialog: React.FC<IDeleteImageDialogProps> = (
onChange={() => setDeleteGenerated(!deleteGenerated)} onChange={() => setDeleteGenerated(!deleteGenerated)}
/> />
</Form> </Form>
</Modal> </ModalComponent>
); );
}; };

View file

@ -4,10 +4,11 @@ import { FormattedMessage, useIntl } from "react-intl";
import isEqual from "lodash-es/isEqual"; import isEqual from "lodash-es/isEqual";
import { useBulkImageUpdate } from "src/core/StashService"; import { useBulkImageUpdate } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { StudioSelect, Modal } from "src/components/Shared"; import { StudioSelect } from "src/components/Shared/Select";
import { useToast } from "src/hooks"; import { ModalComponent } from "src/components/Shared/Modal";
import { FormUtils } from "src/utils"; import { useToast } from "src/hooks/Toast";
import MultiSet from "../Shared/MultiSet"; import FormUtils from "src/utils/form";
import { MultiSet } from "../Shared/MultiSet";
import { RatingSystem } from "../Shared/Rating/RatingSystem"; import { RatingSystem } from "../Shared/Rating/RatingSystem";
import { import {
getAggregateInputIDs, getAggregateInputIDs,
@ -216,7 +217,7 @@ export const EditImagesDialog: React.FC<IListOperationProps> = (
function render() { function render() {
return ( return (
<Modal <ModalComponent
show show
icon={faPencilAlt} icon={faPencilAlt}
header={intl.formatMessage( header={intl.formatMessage(
@ -290,7 +291,7 @@ export const EditImagesDialog: React.FC<IListOperationProps> = (
/> />
</Form.Group> </Form.Group>
</Form> </Form>
</Modal> </ModalComponent>
); );
} }

View file

@ -2,10 +2,13 @@ import React, { MouseEvent, useMemo } from "react";
import { Button, ButtonGroup } from "react-bootstrap"; import { Button, ButtonGroup } from "react-bootstrap";
import cx from "classnames"; import cx from "classnames";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Icon, TagLink, HoverPopover, SweatDrops } from "src/components/Shared"; import { Icon } from "src/components/Shared/Icon";
import { PerformerPopoverButton } from "../Shared/PerformerPopoverButton"; import { TagLink } from "src/components/Shared/TagLink";
import { GridCard } from "../Shared/GridCard"; import { HoverPopover } from "src/components/Shared/HoverPopover";
import { RatingBanner } from "../Shared/RatingBanner"; import { SweatDrops } from "src/components/Shared/SweatDrops";
import { PerformerPopoverButton } from "src/components/Shared/PerformerPopoverButton";
import { GridCard } from "src/components/Shared/GridCard";
import { RatingBanner } from "src/components/Shared/RatingBanner";
import { import {
faBox, faBox,
faImages, faImages,

View file

@ -11,13 +11,11 @@ import {
useImageUpdate, useImageUpdate,
mutateMetadataScan, mutateMetadataScan,
} from "src/core/StashService"; } from "src/core/StashService";
import { import { ErrorMessage } from "src/components/Shared/ErrorMessage";
ErrorMessage, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator, import { Icon } from "src/components/Shared/Icon";
Icon, import { Counter } from "src/components/Shared/Counter";
Counter, import { useToast } from "src/hooks/Toast";
} from "src/components/Shared";
import { useToast } from "src/hooks";
import * as Mousetrap from "mousetrap"; import * as Mousetrap from "mousetrap";
import { OCounterButton } from "src/components/Scenes/SceneDetails/OCounterButton"; import { OCounterButton } from "src/components/Scenes/SceneDetails/OCounterButton";
import { OrganizedButton } from "src/components/Scenes/SceneDetails/OrganizedButton"; import { OrganizedButton } from "src/components/Scenes/SceneDetails/OrganizedButton";

View file

@ -1,8 +1,9 @@
import React, { useMemo } from "react"; import React, { useMemo } from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { TagLink, TruncatedText } from "src/components/Shared"; import { TagLink } from "src/components/Shared/TagLink";
import { TruncatedText } from "src/components/Shared/TruncatedText";
import { PerformerCard } from "src/components/Performers/PerformerCard"; import { PerformerCard } from "src/components/Performers/PerformerCard";
import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem";
import { sortPerformers } from "src/core/performers"; import { sortPerformers } from "src/core/performers";

View file

@ -9,11 +9,11 @@ import {
PerformerSelect, PerformerSelect,
TagSelect, TagSelect,
StudioSelect, StudioSelect,
LoadingIndicator, } from "src/components/Shared/Select";
URLField, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
} from "src/components/Shared"; import { URLField } from "src/components/Shared/URLField";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { FormUtils } from "src/utils"; import FormUtils from "src/utils/form";
import { useFormik } from "formik"; import { useFormik } from "formik";
import { Prompt } from "react-router-dom"; import { Prompt } from "react-router-dom";
import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem";

View file

@ -1,12 +1,12 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { Accordion, Button, Card } from "react-bootstrap"; import { Accordion, Button, Card } from "react-bootstrap";
import { FormattedMessage, FormattedNumber, FormattedTime } from "react-intl"; import { FormattedMessage, FormattedNumber, FormattedTime } from "react-intl";
import { TruncatedText } from "src/components/Shared"; import { TruncatedText } from "src/components/Shared/TruncatedText";
import DeleteFilesDialog from "src/components/Shared/DeleteFilesDialog"; import { DeleteFilesDialog } from "src/components/Shared/DeleteFilesDialog";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { mutateImageSetPrimaryFile } from "src/core/StashService"; import { mutateImageSetPrimaryFile } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { TextField, URLField } from "src/utils/field"; import { TextField, URLField } from "src/utils/field";
interface IFileInfoPanelProps { interface IFileInfoPanelProps {

View file

@ -9,13 +9,14 @@ import {
} from "src/core/generated-graphql"; } from "src/core/generated-graphql";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { queryFindImages } from "src/core/StashService"; import { queryFindImages } from "src/core/StashService";
import { useImagesList, useLightbox } from "src/hooks"; import { useLightbox } from "src/hooks/Lightbox/hooks";
import { ListFilterModel } from "src/models/list-filter/filter"; import { ListFilterModel } from "src/models/list-filter/filter";
import { DisplayMode } from "src/models/list-filter/types"; import { DisplayMode } from "src/models/list-filter/types";
import { import {
IListHookOperation, IListHookOperation,
showWhenSelected, showWhenSelected,
PersistanceLevel, PersistanceLevel,
useImagesList,
} from "src/hooks/ListHook"; } from "src/hooks/ListHook";
import { ImageCard } from "./ImageCard"; import { ImageCard } from "./ImageCard";

View file

@ -2,7 +2,7 @@ import React from "react";
import { Route, Switch } from "react-router-dom"; import { Route, Switch } from "react-router-dom";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import { TITLE_SUFFIX } from "src/components/Shared"; import { TITLE_SUFFIX } from "../Shared/constants";
import { PersistanceLevel } from "src/hooks/ListHook"; import { PersistanceLevel } from "src/hooks/ListHook";
import { Image } from "./ImageDetails/Image"; import { Image } from "./ImageDetails/Image";
import { ImageList } from "./ImageList"; import { ImageList } from "./ImageList";

View file

@ -36,7 +36,7 @@ import { InputFilter } from "./Filters/InputFilter";
import { DateFilter } from "./Filters/DateFilter"; import { DateFilter } from "./Filters/DateFilter";
import { TimestampFilter } from "./Filters/TimestampFilter"; import { TimestampFilter } from "./Filters/TimestampFilter";
import { CountryCriterion } from "src/models/list-filter/criteria/country"; import { CountryCriterion } from "src/models/list-filter/criteria/country";
import { CountrySelect } from "../Shared"; import { CountrySelect } from "../Shared/CountrySelect";
import { StashIDCriterion } from "src/models/list-filter/criteria/stash-ids"; import { StashIDCriterion } from "src/models/list-filter/criteria/stash-ids";
import { StashIDFilter } from "./Filters/StashIDFilter"; import { StashIDFilter } from "./Filters/StashIDFilter";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";

View file

@ -5,7 +5,7 @@ import {
CriterionValue, CriterionValue,
} from "src/models/list-filter/criteria/criterion"; } from "src/models/list-filter/criteria/criterion";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Icon } from "../Shared"; import { Icon } from "../Shared/Icon";
import { faTimes } from "@fortawesome/free-solid-svg-icons"; import { faTimes } from "@fortawesome/free-solid-svg-icons";
interface IFilterTagsProps { interface IFilterTagsProps {

View file

@ -1,10 +1,10 @@
import React from "react"; import React from "react";
import { Form } from "react-bootstrap"; import { Form } from "react-bootstrap";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { CriterionModifier } from "../../../core/generated-graphql"; import { CriterionModifier } from "src/core/generated-graphql";
import { DurationInput } from "../../Shared"; import { DurationInput } from "src/components/Shared/DurationInput";
import { INumberValue } from "../../../models/list-filter/types"; import { INumberValue } from "src/models/list-filter/types";
import { Criterion } from "../../../models/list-filter/criteria/criterion"; import { Criterion } from "src/models/list-filter/criteria/criterion";
interface IDurationFilterProps { interface IDurationFilterProps {
criterion: Criterion<INumberValue>; criterion: Criterion<INumberValue>;

View file

@ -1,9 +1,9 @@
import React from "react"; import React from "react";
import { Form } from "react-bootstrap"; import { Form } from "react-bootstrap";
import { defineMessages, MessageDescriptor, useIntl } from "react-intl"; import { defineMessages, MessageDescriptor, useIntl } from "react-intl";
import { FilterSelect, ValidTypes } from "../../Shared"; import { FilterSelect, ValidTypes } from "src/components/Shared/Select";
import { Criterion } from "../../../models/list-filter/criteria/criterion"; import { Criterion } from "src/models/list-filter/criteria/criterion";
import { IHierarchicalLabelValue } from "../../../models/list-filter/types"; import { IHierarchicalLabelValue } from "src/models/list-filter/types";
interface IHierarchicalLabelValueFilterProps { interface IHierarchicalLabelValueFilterProps {
criterion: Criterion<IHierarchicalLabelValue>; criterion: Criterion<IHierarchicalLabelValue>;

View file

@ -1,8 +1,8 @@
import React from "react"; import React from "react";
import { Form } from "react-bootstrap"; import { Form } from "react-bootstrap";
import { FilterSelect, ValidTypes } from "../../Shared"; import { FilterSelect, ValidTypes } from "src/components/Shared/Select";
import { Criterion } from "../../../models/list-filter/criteria/criterion"; import { Criterion } from "src/models/list-filter/criteria/criterion";
import { ILabeledId } from "../../../models/list-filter/types"; import { ILabeledId } from "src/models/list-filter/types";
interface ILabeledIdFilterProps { interface ILabeledIdFilterProps {
criterion: Criterion<ILabeledId[]>; criterion: Criterion<ILabeledId[]>;

View file

@ -17,9 +17,9 @@ import {
Overlay, Overlay,
} from "react-bootstrap"; } from "react-bootstrap";
import { Icon } from "src/components/Shared"; import { Icon } from "../Shared/Icon";
import { ListFilterModel } from "src/models/list-filter/filter"; import { ListFilterModel } from "src/models/list-filter/filter";
import { useFocus } from "src/utils"; import useFocus from "src/utils/focus";
import { ListFilterOptions } from "src/models/list-filter/filter-options"; import { ListFilterOptions } from "src/models/list-filter/filter-options";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { PersistanceLevel } from "src/hooks/ListHook"; import { PersistanceLevel } from "src/hooks/ListHook";

View file

@ -9,7 +9,7 @@ import {
import Mousetrap from "mousetrap"; import Mousetrap from "mousetrap";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { IconDefinition } from "@fortawesome/fontawesome-svg-core"; import { IconDefinition } from "@fortawesome/fontawesome-svg-core";
import { Icon } from "../Shared"; import { Icon } from "../Shared/Icon";
import { import {
faEllipsisH, faEllipsisH,
faPencilAlt, faPencilAlt,

View file

@ -9,7 +9,7 @@ import {
} from "react-bootstrap"; } from "react-bootstrap";
import { DisplayMode } from "src/models/list-filter/types"; import { DisplayMode } from "src/models/list-filter/types";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Icon } from "../Shared"; import { Icon } from "../Shared/Icon";
import { import {
faList, faList,
faSquare, faSquare,

View file

@ -15,13 +15,13 @@ import {
useSaveFilter, useSaveFilter,
useSetDefaultFilter, useSetDefaultFilter,
} from "src/core/StashService"; } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { ListFilterModel } from "src/models/list-filter/filter"; import { ListFilterModel } from "src/models/list-filter/filter";
import { SavedFilterDataFragment } from "src/core/generated-graphql"; import { SavedFilterDataFragment } from "src/core/generated-graphql";
import { LoadingIndicator } from "src/components/Shared"; import { LoadingIndicator } from "../Shared/LoadingIndicator";
import { PersistanceLevel } from "src/hooks/ListHook"; import { PersistanceLevel } from "src/hooks/ListHook";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { Icon } from "../Shared"; import { Icon } from "../Shared/Icon";
import { faSave, faTimes } from "@fortawesome/free-solid-svg-icons"; import { faSave, faTimes } from "@fortawesome/free-solid-svg-icons";
interface ISavedFilterListProps { interface ISavedFilterListProps {

View file

@ -11,8 +11,8 @@ import { LinkContainer } from "react-router-bootstrap";
import { Link, NavLink, useLocation, useHistory } from "react-router-dom"; import { Link, NavLink, useLocation, useHistory } from "react-router-dom";
import Mousetrap from "mousetrap"; import Mousetrap from "mousetrap";
import { SessionUtils } from "src/utils"; import SessionUtils from "src/utils/session";
import Icon from "src/components/Shared/Icon"; import { Icon } from "src/components/Shared/Icon";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { ManualStateContext } from "./Help/context"; import { ManualStateContext } from "./Help/context";
import { SettingsButton } from "./SettingsButton"; import { SettingsButton } from "./SettingsButton";

View file

@ -3,9 +3,10 @@ import { Form, Col, Row } from "react-bootstrap";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { useBulkMovieUpdate } from "src/core/StashService"; import { useBulkMovieUpdate } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Modal, StudioSelect } from "src/components/Shared"; import { ModalComponent } from "../Shared/Modal";
import { useToast } from "src/hooks"; import { StudioSelect } from "../Shared/Select";
import { FormUtils } from "src/utils"; import { useToast } from "src/hooks/Toast";
import FormUtils from "src/utils/form";
import { RatingSystem } from "../Shared/Rating/RatingSystem"; import { RatingSystem } from "../Shared/Rating/RatingSystem";
import { import {
getAggregateInputValue, getAggregateInputValue,
@ -100,7 +101,7 @@ export const EditMoviesDialog: React.FC<IListOperationProps> = (
function render() { function render() {
return ( return (
<Modal <ModalComponent
show show
icon={faPencilAlt} icon={faPencilAlt}
header={intl.formatMessage( header={intl.formatMessage(
@ -158,7 +159,7 @@ export const EditMoviesDialog: React.FC<IListOperationProps> = (
/> />
</Form.Group> </Form.Group>
</Form> </Form>
</Modal> </ModalComponent>
); );
} }

View file

@ -1,13 +1,11 @@
import React from "react"; import React from "react";
import { Button, ButtonGroup } from "react-bootstrap"; import { Button, ButtonGroup } from "react-bootstrap";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { import { GridCard } from "../Shared/GridCard";
GridCard, import { HoverPopover } from "../Shared/HoverPopover";
HoverPopover, import { Icon } from "../Shared/Icon";
Icon, import { TagLink } from "../Shared/TagLink";
TagLink, import { TruncatedText } from "../Shared/TruncatedText";
TruncatedText,
} from "src/components/Shared";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import { RatingBanner } from "../Shared/RatingBanner"; import { RatingBanner } from "../Shared/RatingBanner";
import { faPlayCircle } from "@fortawesome/free-solid-svg-icons"; import { faPlayCircle } from "@fortawesome/free-solid-svg-icons";

View file

@ -9,13 +9,11 @@ import {
useMovieDestroy, useMovieDestroy,
} from "src/core/StashService"; } from "src/core/StashService";
import { useParams, useHistory } from "react-router-dom"; import { useParams, useHistory } from "react-router-dom";
import { import { DetailsEditNavbar } from "src/components/Shared/DetailsEditNavbar";
DetailsEditNavbar, import { ErrorMessage } from "src/components/Shared/ErrorMessage";
ErrorMessage, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator, import { ModalComponent } from "src/components/Shared/Modal";
Modal, import { useToast } from "src/hooks/Toast";
} from "src/components/Shared";
import { useToast } from "src/hooks";
import { MovieScenesPanel } from "./MovieScenesPanel"; import { MovieScenesPanel } from "./MovieScenesPanel";
import { MovieDetailsPanel } from "./MovieDetailsPanel"; import { MovieDetailsPanel } from "./MovieDetailsPanel";
import { MovieEditPanel } from "./MovieEditPanel"; import { MovieEditPanel } from "./MovieEditPanel";
@ -111,7 +109,7 @@ const MoviePage: React.FC<IProps> = ({ movie }) => {
function renderDeleteAlert() { function renderDeleteAlert() {
return ( return (
<Modal <ModalComponent
show={isDeleteAlertOpen} show={isDeleteAlertOpen}
icon={faTrashAlt} icon={faTrashAlt}
accept={{ accept={{
@ -131,7 +129,7 @@ const MoviePage: React.FC<IProps> = ({ movie }) => {
}} }}
/> />
</p> </p>
</Modal> </ModalComponent>
); );
} }

View file

@ -2,8 +2,8 @@ import React, { useMemo, useState } from "react";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { useMovieCreate } from "src/core/StashService"; import { useMovieCreate } from "src/core/StashService";
import { useHistory, useLocation } from "react-router-dom"; import { useHistory, useLocation } from "react-router-dom";
import { LoadingIndicator } from "src/components/Shared"; import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { MovieEditPanel } from "./MovieEditPanel"; import { MovieEditPanel } from "./MovieEditPanel";
const MovieCreate: React.FC = () => { const MovieCreate: React.FC = () => {

View file

@ -1,7 +1,8 @@
import React from "react"; import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { DurationUtils, TextUtils } from "src/utils"; import DurationUtils from "src/utils/duration";
import TextUtils from "src/utils/text";
import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem";
import { TextField, URLField } from "src/utils/field"; import { TextField, URLField } from "src/utils/field";

View file

@ -7,16 +7,16 @@ import {
queryScrapeMovieURL, queryScrapeMovieURL,
useListMovieScrapers, useListMovieScrapers,
} from "src/core/StashService"; } from "src/core/StashService";
import { import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator, import { StudioSelect } from "src/components/Shared/Select";
StudioSelect, import { DetailsEditNavbar } from "src/components/Shared/DetailsEditNavbar";
DetailsEditNavbar, import { DurationInput } from "src/components/Shared/DurationInput";
DurationInput, import { URLField } from "src/components/Shared/URLField";
URLField, import { useToast } from "src/hooks/Toast";
} from "src/components/Shared";
import { useToast } from "src/hooks";
import { Modal as BSModal, Form, Button, Col, Row } from "react-bootstrap"; import { Modal as BSModal, Form, Button, Col, Row } from "react-bootstrap";
import { DurationUtils, FormUtils, ImageUtils } from "src/utils"; import DurationUtils from "src/utils/duration";
import FormUtils from "src/utils/form";
import ImageUtils from "src/utils/image";
import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem";
import { useFormik } from "formik"; import { useFormik } from "formik";
import { Prompt } from "react-router-dom"; import { Prompt } from "react-router-dom";

View file

@ -9,10 +9,10 @@ import {
ScrapeDialogRow, ScrapeDialogRow,
ScrapedTextAreaRow, ScrapedTextAreaRow,
} from "src/components/Shared/ScrapeDialog"; } from "src/components/Shared/ScrapeDialog";
import { StudioSelect } from "src/components/Shared"; import { StudioSelect } from "src/components/Shared/Select";
import { DurationUtils } from "src/utils"; import DurationUtils from "src/utils/duration";
import { useStudioCreate } from "src/core/StashService"; import { useStudioCreate } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
function renderScrapedStudio( function renderScrapedStudio(
result: ScrapeResult<string>, result: ScrapeResult<string>,

View file

@ -16,7 +16,8 @@ import {
useMoviesList, useMoviesList,
PersistanceLevel, PersistanceLevel,
} from "src/hooks/ListHook"; } from "src/hooks/ListHook";
import { ExportDialog, DeleteEntityDialog } from "src/components/Shared"; import { ExportDialog } from "../Shared/ExportDialog";
import { DeleteEntityDialog } from "../Shared/DeleteEntityDialog";
import { MovieCard } from "./MovieCard"; import { MovieCard } from "./MovieCard";
import { EditMoviesDialog } from "./EditMoviesDialog"; import { EditMoviesDialog } from "./EditMoviesDialog";

View file

@ -2,7 +2,7 @@ import React from "react";
import { Route, Switch } from "react-router-dom"; import { Route, Switch } from "react-router-dom";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import { TITLE_SUFFIX } from "src/components/Shared"; import { TITLE_SUFFIX } from "src/components/Shared/constants";
import Movie from "./MovieDetails/Movie"; import Movie from "./MovieDetails/Movie";
import MovieCreate from "./MovieDetails/MovieCreate"; import MovieCreate from "./MovieDetails/MovieCreate";
import { MovieList } from "./MovieList"; import { MovieList } from "./MovieList";

View file

@ -3,9 +3,9 @@ import { Col, Form, Row } from "react-bootstrap";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { useBulkPerformerUpdate } from "src/core/StashService"; import { useBulkPerformerUpdate } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Modal } from "src/components/Shared"; import { ModalComponent } from "../Shared/Modal";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import MultiSet from "../Shared/MultiSet"; import { MultiSet } from "../Shared/MultiSet";
import { RatingSystem } from "../Shared/Rating/RatingSystem"; import { RatingSystem } from "../Shared/Rating/RatingSystem";
import { import {
getAggregateInputValue, getAggregateInputValue,
@ -20,7 +20,7 @@ import {
import { IndeterminateCheckbox } from "../Shared/IndeterminateCheckbox"; import { IndeterminateCheckbox } from "../Shared/IndeterminateCheckbox";
import { BulkUpdateTextInput } from "../Shared/BulkUpdateTextInput"; import { BulkUpdateTextInput } from "../Shared/BulkUpdateTextInput";
import { faPencilAlt } from "@fortawesome/free-solid-svg-icons"; import { faPencilAlt } from "@fortawesome/free-solid-svg-icons";
import { FormUtils } from "../../utils"; import FormUtils from "src/utils/form";
interface IListOperationProps { interface IListOperationProps {
selected: GQL.SlimPerformerDataFragment[]; selected: GQL.SlimPerformerDataFragment[];
@ -181,7 +181,7 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
function render() { function render() {
return ( return (
<Modal <ModalComponent
show show
icon={faPencilAlt} icon={faPencilAlt}
header={intl.formatMessage( header={intl.formatMessage(
@ -317,7 +317,7 @@ export const EditPerformersDialog: React.FC<IListOperationProps> = (
/> />
</Form.Group> </Form.Group>
</Form> </Form>
</Modal> </ModalComponent>
); );
} }

View file

@ -2,14 +2,13 @@ import React from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { NavUtils, TextUtils } from "src/utils"; import NavUtils from "src/utils/navigation";
import { import TextUtils from "src/utils/text";
GridCard, import { GridCard } from "../Shared/GridCard";
CountryFlag, import { CountryFlag } from "../Shared/CountryFlag";
HoverPopover, import { HoverPopover } from "../Shared/HoverPopover";
Icon, import { Icon } from "../Shared/Icon";
TagLink, import { TagLink } from "../Shared/TagLink";
} from "src/components/Shared";
import { Button, ButtonGroup } from "react-bootstrap"; import { Button, ButtonGroup } from "react-bootstrap";
import { import {
Criterion, Criterion,

View file

@ -12,17 +12,16 @@ import {
usePerformerDestroy, usePerformerDestroy,
mutateMetadataAutoTag, mutateMetadataAutoTag,
} from "src/core/StashService"; } from "src/core/StashService";
import { import { Counter } from "src/components/Shared/Counter";
Counter, import { CountryFlag } from "src/components/Shared/CountryFlag";
CountryFlag, import { DetailsEditNavbar } from "src/components/Shared/DetailsEditNavbar";
DetailsEditNavbar, import { ErrorMessage } from "src/components/Shared/ErrorMessage";
ErrorMessage, import { Icon } from "src/components/Shared/Icon";
Icon, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator, import { useLightbox } from "src/hooks/Lightbox/hooks";
} from "src/components/Shared"; import { useToast } from "src/hooks/Toast";
import { useLightbox, useToast } from "src/hooks";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem";
import { PerformerDetailsPanel } from "./PerformerDetailsPanel"; import { PerformerDetailsPanel } from "./PerformerDetailsPanel";
import { PerformerScenesPanel } from "./PerformerScenesPanel"; import { PerformerScenesPanel } from "./PerformerScenesPanel";

View file

@ -1,6 +1,6 @@
import React, { useMemo, useState } from "react"; import React, { useMemo, useState } from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { LoadingIndicator } from "src/components/Shared"; import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
import { PerformerEditPanel } from "./PerformerEditPanel"; import { PerformerEditPanel } from "./PerformerEditPanel";
import { useLocation } from "react-router-dom"; import { useLocation } from "react-router-dom";

View file

@ -1,8 +1,10 @@
import React from "react"; import React from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { TagLink } from "src/components/Shared"; import { TagLink } from "src/components/Shared/TagLink";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { TextUtils, getStashboxBase, getCountryByISO } from "src/utils"; import TextUtils from "src/utils/text";
import { getStashboxBase } from "src/utils/stashbox";
import { getCountryByISO } from "src/utils/country";
import { TextField, URLField } from "src/utils/field"; import { TextField, URLField } from "src/utils/field";
import { cmToImperial, kgToLbs } from "src/utils/units"; import { cmToImperial, kgToLbs } from "src/utils/units";

View file

@ -13,17 +13,17 @@ import {
useTagCreate, useTagCreate,
queryScrapePerformerURL, queryScrapePerformerURL,
} from "src/core/StashService"; } from "src/core/StashService";
import { import { Icon } from "src/components/Shared/Icon";
Icon, import { ImageInput } from "src/components/Shared/ImageInput";
ImageInput, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator, import { CollapseButton } from "src/components/Shared/CollapseButton";
CollapseButton, import { TagSelect } from "src/components/Shared/Select";
TagSelect, import { CountrySelect } from "src/components/Shared/CountrySelect";
URLField, import { URLField } from "src/components/Shared/URLField";
CountrySelect, import ImageUtils from "src/utils/image";
} from "src/components/Shared"; import { getStashIDs } from "src/utils/stashIds";
import { ImageUtils, getStashIDs } from "src/utils"; import { stashboxDisplayName } from "src/utils/stashbox";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { Prompt, useHistory } from "react-router-dom"; import { Prompt, useHistory } from "react-router-dom";
import { useFormik } from "formik"; import { useFormik } from "formik";
import { import {
@ -32,7 +32,6 @@ import {
stringToGender, stringToGender,
} from "src/utils/gender"; } from "src/utils/gender";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { stashboxDisplayName } from "src/utils/stashbox";
import { PerformerScrapeDialog } from "./PerformerScrapeDialog"; import { PerformerScrapeDialog } from "./PerformerScrapeDialog";
import PerformerScrapeModal from "./PerformerScrapeModal"; import PerformerScrapeModal from "./PerformerScrapeModal";
import PerformerStashBoxModal, { IStashBox } from "./PerformerStashBoxModal"; import PerformerStashBoxModal, { IStashBox } from "./PerformerStashBoxModal";
@ -68,7 +67,7 @@ export const PerformerEditPanel: React.FC<IPerformerDetails> = ({
const isNew = performer.id === undefined; const isNew = performer.id === undefined;
// Editing state // Editing stat
const [scraper, setScraper] = useState<GQL.Scraper | IStashBox>(); const [scraper, setScraper] = useState<GQL.Scraper | IStashBox>();
const [newTags, setNewTags] = useState<GQL.ScrapedTag[]>(); const [newTags, setNewTags] = useState<GQL.ScrapedTag[]>();
const [isScraperModalOpen, setIsScraperModalOpen] = useState<boolean>(false); const [isScraperModalOpen, setIsScraperModalOpen] = useState<boolean>(false);

View file

@ -12,8 +12,8 @@ import {
} from "src/components/Shared/ScrapeDialog"; } from "src/components/Shared/ScrapeDialog";
import { useTagCreate } from "src/core/StashService"; import { useTagCreate } from "src/core/StashService";
import { Form } from "react-bootstrap"; import { Form } from "react-bootstrap";
import { TagSelect } from "src/components/Shared"; import { TagSelect } from "src/components/Shared/Select";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import clone from "lodash-es/clone"; import clone from "lodash-es/clone";
import { import {
genderStrings, genderStrings,

View file

@ -4,7 +4,8 @@ import { Button, Form } from "react-bootstrap";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Modal, LoadingIndicator } from "src/components/Shared"; import { ModalComponent } from "src/components/Shared/Modal";
import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
import { useScrapePerformerList } from "src/core/StashService"; import { useScrapePerformerList } from "src/core/StashService";
const CLASSNAME = "PerformerScrapeModal"; const CLASSNAME = "PerformerScrapeModal";
@ -39,7 +40,7 @@ const PerformerScrapeModal: React.FC<IProps> = ({
useEffect(() => inputRef.current?.focus(), []); useEffect(() => inputRef.current?.focus(), []);
return ( return (
<Modal <ModalComponent
show show
onHide={onHide} onHide={onHide}
header={`Scrape performer from ${scraper.name}`} header={`Scrape performer from ${scraper.name}`}
@ -77,7 +78,7 @@ const PerformerScrapeModal: React.FC<IProps> = ({
</ul> </ul>
)} )}
</div> </div>
</Modal> </ModalComponent>
); );
}; };

View file

@ -4,7 +4,8 @@ import { Button, Form } from "react-bootstrap";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Modal, LoadingIndicator } from "src/components/Shared"; import { ModalComponent } from "src/components/Shared/Modal";
import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
import { stashboxDisplayName } from "src/utils/stashbox"; import { stashboxDisplayName } from "src/utils/stashbox";
const CLASSNAME = "PerformerScrapeModal"; const CLASSNAME = "PerformerScrapeModal";
@ -50,7 +51,7 @@ const PerformerStashBoxModal: React.FC<IProps> = ({
useEffect(() => inputRef.current?.focus(), []); useEffect(() => inputRef.current?.focus(), []);
return ( return (
<Modal <ModalComponent
show show
onHide={onHide} onHide={onHide}
header={`Scrape performer from ${stashboxDisplayName( header={`Scrape performer from ${stashboxDisplayName(
@ -90,7 +91,7 @@ const PerformerStashBoxModal: React.FC<IProps> = ({
query !== "" && <h5 className="text-center">No results found.</h5> query !== "" && <h5 className="text-center">No results found.</h5>
)} )}
</div> </div>
</Modal> </ModalComponent>
); );
}; };

View file

@ -11,12 +11,16 @@ import {
queryFindPerformers, queryFindPerformers,
usePerformersDestroy, usePerformersDestroy,
} from "src/core/StashService"; } from "src/core/StashService";
import { usePerformersList } from "src/hooks"; import {
import { showWhenSelected, PersistanceLevel } from "src/hooks/ListHook"; showWhenSelected,
PersistanceLevel,
usePerformersList,
} from "src/hooks/ListHook";
import { ListFilterModel } from "src/models/list-filter/filter"; import { ListFilterModel } from "src/models/list-filter/filter";
import { DisplayMode } from "src/models/list-filter/types"; import { DisplayMode } from "src/models/list-filter/types";
import { PerformerTagger } from "src/components/Tagger"; import { PerformerTagger } from "../Tagger/performers/PerformerTagger";
import { ExportDialog, DeleteEntityDialog } from "src/components/Shared"; import { ExportDialog } from "../Shared/ExportDialog";
import { DeleteEntityDialog } from "../Shared/DeleteEntityDialog";
import { IPerformerCardExtraCriteria, PerformerCard } from "./PerformerCard"; import { IPerformerCardExtraCriteria, PerformerCard } from "./PerformerCard";
import { PerformerListTable } from "./PerformerListTable"; import { PerformerListTable } from "./PerformerListTable";
import { EditPerformersDialog } from "./EditPerformersDialog"; import { EditPerformersDialog } from "./EditPerformersDialog";

View file

@ -5,8 +5,8 @@ import { useIntl } from "react-intl";
import { Button, Table } from "react-bootstrap"; import { Button, Table } from "react-bootstrap";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Icon } from "src/components/Shared"; import { Icon } from "../Shared/Icon";
import { NavUtils } from "src/utils"; import NavUtils from "src/utils/navigation";
import { faHeart } from "@fortawesome/free-solid-svg-icons"; import { faHeart } from "@fortawesome/free-solid-svg-icons";
import { cmToImperial } from "src/utils/units"; import { cmToImperial } from "src/utils/units";

View file

@ -2,7 +2,7 @@ import React from "react";
import { Route, Switch } from "react-router-dom"; import { Route, Switch } from "react-router-dom";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import { TITLE_SUFFIX } from "src/components/Shared"; import { TITLE_SUFFIX } from "src/components/Shared/constants";
import { PersistanceLevel } from "src/hooks/ListHook"; import { PersistanceLevel } from "src/hooks/ListHook";
import Performer from "./PerformerDetails/Performer"; import Performer from "./PerformerDetails/Performer";
import PerformerCreate from "./PerformerDetails/PerformerCreate"; import PerformerCreate from "./PerformerDetails/PerformerCreate";

View file

@ -14,16 +14,14 @@ import { Link, useHistory } from "react-router-dom";
import { FormattedMessage, FormattedNumber, useIntl } from "react-intl"; import { FormattedMessage, FormattedNumber, useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { import { LoadingIndicator } from "../Shared/LoadingIndicator";
LoadingIndicator, import { ErrorMessage } from "../Shared/ErrorMessage";
ErrorMessage, import { HoverPopover } from "../Shared/HoverPopover";
HoverPopover, import { Icon } from "../Shared/Icon";
Icon, import { TagLink } from "../Shared/TagLink";
TagLink, import { SweatDrops } from "../Shared/SweatDrops";
SweatDrops,
} from "src/components/Shared";
import { Pagination } from "src/components/List/Pagination"; import { Pagination } from "src/components/List/Pagination";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { DeleteScenesDialog } from "src/components/Scenes/DeleteScenesDialog"; import { DeleteScenesDialog } from "src/components/Scenes/DeleteScenesDialog";
import { EditScenesDialog } from "../Scenes/EditScenesDialog"; import { EditScenesDialog } from "../Scenes/EditScenesDialog";
import { PerformerPopoverButton } from "../Shared/PerformerPopoverButton"; import { PerformerPopoverButton } from "../Shared/PerformerPopoverButton";

View file

@ -9,8 +9,8 @@ import {
useScenesUpdate, useScenesUpdate,
} from "src/core/StashService"; } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { LoadingIndicator } from "src/components/Shared"; import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { Pagination } from "src/components/List/Pagination"; import { Pagination } from "src/components/List/Pagination";
import { IParserInput, ParserInput } from "./ParserInput"; import { IParserInput, ParserInput } from "./ParserInput";
import { ParserField } from "./ParserField"; import { ParserField } from "./ParserField";

View file

@ -10,7 +10,7 @@ import {
PerformerSelect, PerformerSelect,
TagSelect, TagSelect,
StudioSelect, StudioSelect,
} from "src/components/Shared"; } from "src/components/Shared/Select";
import cx from "classnames"; import cx from "classnames";
import { objectTitle } from "src/core/files"; import { objectTitle } from "src/core/files";

View file

@ -7,7 +7,7 @@ import {
import React, { useState } from "react"; import React, { useState } from "react";
import { Button, Collapse } from "react-bootstrap"; import { Button, Collapse } from "react-bootstrap";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Icon } from "src/components/Shared"; import { Icon } from "src/components/Shared/Icon";
interface IShowFieldsProps { interface IShowFieldsProps {
fields: Map<string, boolean>; fields: Map<string, boolean>;

View file

@ -8,7 +8,7 @@ import React, {
import { Button } from "react-bootstrap"; import { Button } from "react-bootstrap";
import axios from "axios"; import axios from "axios";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { WebVTT } from "videojs-vtt.js"; import { WebVTT } from "videojs-vtt.js";
interface IScenePlayerScrubberProps { interface IScenePlayerScrubberProps {

View file

@ -1 +0,0 @@
export * from "./ScenePlayer";

View file

@ -2,8 +2,8 @@ import React, { useState } from "react";
import { Form } from "react-bootstrap"; import { Form } from "react-bootstrap";
import { useScenesDestroy } from "src/core/StashService"; import { useScenesDestroy } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { Modal } from "src/components/Shared"; import { ModalComponent } from "src/components/Shared/Modal";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { faTrashAlt } from "@fortawesome/free-solid-svg-icons"; import { faTrashAlt } from "@fortawesome/free-solid-svg-icons";
@ -126,7 +126,7 @@ export const DeleteScenesDialog: React.FC<IDeleteSceneDialogProps> = (
} }
return ( return (
<Modal <ModalComponent
show show
icon={faTrashAlt} icon={faTrashAlt}
header={header} header={header}
@ -162,7 +162,7 @@ export const DeleteScenesDialog: React.FC<IDeleteSceneDialogProps> = (
onChange={() => setDeleteGenerated(!deleteGenerated)} onChange={() => setDeleteGenerated(!deleteGenerated)}
/> />
</Form> </Form>
</Modal> </ModalComponent>
); );
}; };

View file

@ -4,10 +4,11 @@ import { FormattedMessage, useIntl } from "react-intl";
import isEqual from "lodash-es/isEqual"; import isEqual from "lodash-es/isEqual";
import { useBulkSceneUpdate } from "src/core/StashService"; import { useBulkSceneUpdate } from "src/core/StashService";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { StudioSelect, Modal } from "src/components/Shared"; import { StudioSelect } from "../Shared/Select";
import { useToast } from "src/hooks"; import { ModalComponent } from "../Shared/Modal";
import { FormUtils } from "src/utils"; import { MultiSet } from "../Shared/MultiSet";
import MultiSet from "../Shared/MultiSet"; import { useToast } from "src/hooks/Toast";
import FormUtils from "src/utils/form";
import { RatingSystem } from "../Shared/Rating/RatingSystem"; import { RatingSystem } from "../Shared/Rating/RatingSystem";
import { import {
getAggregateInputIDs, getAggregateInputIDs,
@ -241,7 +242,7 @@ export const EditScenesDialog: React.FC<IListOperationProps> = (
function render() { function render() {
return ( return (
<Modal <ModalComponent
show show
icon={faPencilAlt} icon={faPencilAlt}
header={intl.formatMessage( header={intl.formatMessage(
@ -322,7 +323,7 @@ export const EditScenesDialog: React.FC<IListOperationProps> = (
/> />
</Form.Group> </Form.Group>
</Form> </Form>
</Modal> </ModalComponent>
); );
} }

View file

@ -3,14 +3,13 @@ import { Button, ButtonGroup } from "react-bootstrap";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import cx from "classnames"; import cx from "classnames";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { import { Icon } from "../Shared/Icon";
Icon, import { TagLink } from "../Shared/TagLink";
TagLink, import { HoverPopover } from "../Shared/HoverPopover";
HoverPopover, import { SweatDrops } from "../Shared/SweatDrops";
SweatDrops, import { TruncatedText } from "../Shared/TruncatedText";
TruncatedText, import NavUtils from "src/utils/navigation";
} from "src/components/Shared"; import TextUtils from "src/utils/text";
import { NavUtils, TextUtils } from "src/utils";
import { SceneQueue } from "src/models/sceneQueue"; import { SceneQueue } from "src/models/sceneQueue";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";
import { PerformerPopoverButton } from "../Shared/PerformerPopoverButton"; import { PerformerPopoverButton } from "../Shared/PerformerPopoverButton";

View file

@ -2,7 +2,7 @@ import { faExternalLinkAlt } from "@fortawesome/free-solid-svg-icons";
import React from "react"; import React from "react";
import { Button } from "react-bootstrap"; import { Button } from "react-bootstrap";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import Icon from "src/components/Shared/Icon"; import { Icon } from "src/components/Shared/Icon";
import { objectTitle } from "src/core/files"; import { objectTitle } from "src/core/files";
import { SceneDataFragment } from "src/core/generated-graphql"; import { SceneDataFragment } from "src/core/generated-graphql";

View file

@ -2,7 +2,9 @@ import { faBan, faMinus } from "@fortawesome/free-solid-svg-icons";
import React, { useState } from "react"; import React, { useState } from "react";
import { Button, ButtonGroup, Dropdown, DropdownButton } from "react-bootstrap"; import { Button, ButtonGroup, Dropdown, DropdownButton } from "react-bootstrap";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Icon, LoadingIndicator, SweatDrops } from "src/components/Shared"; import { Icon } from "src/components/Shared/Icon";
import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
import { SweatDrops } from "src/components/Shared/SweatDrops";
export interface IOCounterButtonProps { export interface IOCounterButtonProps {
value: number; value: number;

View file

@ -1,7 +1,7 @@
import React from "react"; import React from "react";
import cx from "classnames"; import cx from "classnames";
import { Button, Spinner } from "react-bootstrap"; import { Button, Spinner } from "react-bootstrap";
import Icon from "src/components/Shared/Icon"; import { Icon } from "src/components/Shared/Icon";
import { defineMessages, useIntl } from "react-intl"; import { defineMessages, useIntl } from "react-intl";
import { faBox } from "@fortawesome/free-solid-svg-icons"; import { faBox } from "@fortawesome/free-solid-svg-icons";

View file

@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import cx from "classnames"; import cx from "classnames";
import { Button, Form, Spinner } from "react-bootstrap"; import { Button, Form, Spinner } from "react-bootstrap";
import Icon from "src/components/Shared/Icon"; import { Icon } from "src/components/Shared/Icon";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { import {
faChevronDown, faChevronDown,

View file

@ -23,13 +23,11 @@ import {
queryFindScenesByID, queryFindScenesByID,
} from "src/core/StashService"; } from "src/core/StashService";
import { import { ErrorMessage } from "src/components/Shared/ErrorMessage";
ErrorMessage, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator, import { Icon } from "src/components/Shared/Icon";
Icon, import { Counter } from "src/components/Shared/Counter";
Counter, import { useToast } from "src/hooks/Toast";
} from "src/components/Shared";
import { useToast } from "src/hooks";
import SceneQueue, { QueuedScene } from "src/models/sceneQueue"; import SceneQueue, { QueuedScene } from "src/models/sceneQueue";
import { ListFilterModel } from "src/models/list-filter/filter"; import { ListFilterModel } from "src/models/list-filter/filter";
import Mousetrap from "mousetrap"; import Mousetrap from "mousetrap";

View file

@ -3,8 +3,8 @@ import { FormattedMessage, useIntl } from "react-intl";
import { useLocation } from "react-router-dom"; import { useLocation } from "react-router-dom";
import { SceneEditPanel } from "./SceneEditPanel"; import { SceneEditPanel } from "./SceneEditPanel";
import { useFindScene } from "src/core/StashService"; import { useFindScene } from "src/core/StashService";
import { ImageUtils } from "src/utils"; import ImageUtils from "src/utils/image";
import { LoadingIndicator } from "src/components/Shared"; import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
const SceneCreate: React.FC = () => { const SceneCreate: React.FC = () => {
const intl = useIntl(); const intl = useIntl();

View file

@ -4,7 +4,7 @@ import { FormattedDate, FormattedMessage, useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import TextUtils from "src/utils/text"; import TextUtils from "src/utils/text";
import { TagLink } from "src/components/Shared/TagLink"; import { TagLink } from "src/components/Shared/TagLink";
import TruncatedText from "src/components/Shared/TruncatedText"; import { TruncatedText } from "src/components/Shared/TruncatedText";
import { PerformerCard } from "src/components/Performers/PerformerCard"; import { PerformerCard } from "src/components/Performers/PerformerCard";
import { sortPerformers } from "src/core/performers"; import { sortPerformers } from "src/core/performers";
import { RatingSystem } from "src/components/Shared/Rating/RatingSystem"; import { RatingSystem } from "src/components/Shared/Rating/RatingSystem";

View file

@ -26,14 +26,16 @@ import {
TagSelect, TagSelect,
StudioSelect, StudioSelect,
GallerySelect, GallerySelect,
Icon, MovieSelect,
LoadingIndicator, } from "src/components/Shared/Select";
ImageInput, import { Icon } from "src/components/Shared/Icon";
URLField, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
} from "src/components/Shared"; import { ImageInput } from "src/components/Shared/ImageInput";
import useToast from "src/hooks/Toast"; import { URLField } from "src/components/Shared/URLField";
import { ImageUtils, FormUtils, getStashIDs } from "src/utils"; import { useToast } from "src/hooks/Toast";
import { MovieSelect } from "src/components/Shared/Select"; import ImageUtils from "src/utils/image";
import FormUtils from "src/utils/form";
import { getStashIDs } from "src/utils/stashIds";
import { useFormik } from "formik"; import { useFormik } from "formik";
import { Prompt, useHistory } from "react-router-dom"; import { Prompt, useHistory } from "react-router-dom";
import { ConfigurationContext } from "src/hooks/Config"; import { ConfigurationContext } from "src/hooks/Config";

View file

@ -7,13 +7,15 @@ import {
useIntl, useIntl,
} from "react-intl"; } from "react-intl";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
import { TruncatedText } from "src/components/Shared"; import { TruncatedText } from "src/components/Shared/TruncatedText";
import DeleteFilesDialog from "src/components/Shared/DeleteFilesDialog"; import { DeleteFilesDialog } from "src/components/Shared/DeleteFilesDialog";
import ReassignFilesDialog from "src/components/Shared/ReassignFilesDialog"; import { ReassignFilesDialog } from "src/components/Shared/ReassignFilesDialog";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { mutateSceneSetPrimaryFile } from "src/core/StashService"; import { mutateSceneSetPrimaryFile } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { NavUtils, TextUtils, getStashboxBase } from "src/utils"; import NavUtils from "src/utils/navigation";
import TextUtils from "src/utils/text";
import { getStashboxBase } from "src/utils/stashbox";
import { TextField, URLField } from "src/utils/field"; import { TextField, URLField } from "src/utils/field";
interface IFileInfoPanelProps { interface IFileInfoPanelProps {

View file

@ -8,13 +8,10 @@ import {
useSceneMarkerUpdate, useSceneMarkerUpdate,
useSceneMarkerDestroy, useSceneMarkerDestroy,
} from "src/core/StashService"; } from "src/core/StashService";
import { import { DurationInput } from "src/components/Shared/DurationInput";
DurationInput, import { TagSelect, MarkerTitleSuggest } from "src/components/Shared/Select";
TagSelect,
MarkerTitleSuggest,
} from "src/components/Shared";
import { getPlayerPosition } from "src/components/ScenePlayer/util"; import { getPlayerPosition } from "src/components/ScenePlayer/util";
import useToast from "src/hooks/Toast"; import { useToast } from "src/hooks/Toast";
interface IFormFields { interface IFormFields {
title: string; title: string;

View file

@ -3,14 +3,12 @@ import { Badge, Button, Col, Form, InputGroup, Row } from "react-bootstrap";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { import { ModalComponent } from "src/components/Shared/Modal";
Modal, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator, import { TruncatedText } from "src/components/Shared/TruncatedText";
TruncatedText, import { Icon } from "src/components/Shared/Icon";
Icon,
} from "src/components/Shared";
import { queryScrapeSceneQuery } from "src/core/StashService"; import { queryScrapeSceneQuery } from "src/core/StashService";
import useToast from "src/hooks/Toast"; import { useToast } from "src/hooks/Toast";
import { faSearch } from "@fortawesome/free-solid-svg-icons"; import { faSearch } from "@fortawesome/free-solid-svg-icons";
interface ISceneSearchResultDetailsProps { interface ISceneSearchResultDetailsProps {
@ -187,7 +185,7 @@ export const SceneQueryModal: React.FC<IProps> = ({
} }
return ( return (
<Modal <ModalComponent
show show
onHide={onHide} onHide={onHide}
modalProps={{ size: "lg", dialogClassName: "scrape-query-dialog" }} modalProps={{ size: "lg", dialogClassName: "scrape-query-dialog" }}
@ -233,7 +231,7 @@ export const SceneQueryModal: React.FC<IProps> = ({
renderResults() renderResults()
)} )}
</div> </div>
</Modal> </ModalComponent>
); );
}; };

View file

@ -1,7 +1,11 @@
import React, { useMemo, useState } from "react"; import React, { useMemo, useState } from "react";
import { StudioSelect, PerformerSelect } from "src/components/Shared";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { MovieSelect, TagSelect } from "src/components/Shared/Select"; import {
MovieSelect,
TagSelect,
StudioSelect,
PerformerSelect,
} from "src/components/Shared/Select";
import { import {
ScrapeDialog, ScrapeDialog,
ScrapeDialogRow, ScrapeDialogRow,
@ -19,7 +23,7 @@ import {
useTagCreate, useTagCreate,
makePerformerCreateInput, makePerformerCreateInput,
} from "src/core/StashService"; } from "src/core/StashService";
import useToast from "src/hooks/Toast"; import { useToast } from "src/hooks/Toast";
import DurationUtils from "src/utils/duration"; import DurationUtils from "src/utils/duration";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";

View file

@ -1,7 +1,7 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { Button, Form } from "react-bootstrap"; import { Button, Form } from "react-bootstrap";
import TruncatedText from "src/components/Shared/TruncatedText"; import { TruncatedText } from "src/components/Shared/TruncatedText";
import { VIDEO_PLAYER_ID } from "src/components/ScenePlayer/util"; import { VIDEO_PLAYER_ID } from "src/components/ScenePlayer/util";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";

View file

@ -8,11 +8,14 @@ import {
SlimSceneDataFragment, SlimSceneDataFragment,
} from "src/core/generated-graphql"; } from "src/core/generated-graphql";
import { queryFindScenes } from "src/core/StashService"; import { queryFindScenes } from "src/core/StashService";
import { useScenesList } from "src/hooks";
import { ListFilterModel } from "src/models/list-filter/filter"; import { ListFilterModel } from "src/models/list-filter/filter";
import { DisplayMode } from "src/models/list-filter/types"; import { DisplayMode } from "src/models/list-filter/types";
import { showWhenSelected, PersistanceLevel } from "src/hooks/ListHook"; import {
import Tagger from "src/components/Tagger"; showWhenSelected,
PersistanceLevel,
useScenesList,
} from "src/hooks/ListHook";
import { Tagger } from "../Tagger/scenes/SceneTagger";
import { IPlaySceneOptions, SceneQueue } from "src/models/sceneQueue"; import { IPlaySceneOptions, SceneQueue } from "src/models/sceneQueue";
import { WallPanel } from "../Wall/WallPanel"; import { WallPanel } from "../Wall/WallPanel";
import { SceneListTable } from "./SceneListTable"; import { SceneListTable } from "./SceneListTable";

View file

@ -4,8 +4,9 @@ import React from "react";
import { Table, Button, Form } from "react-bootstrap"; import { Table, Button, Form } from "react-bootstrap";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { NavUtils, TextUtils } from "src/utils"; import NavUtils from "src/utils/navigation";
import { Icon } from "src/components/Shared"; import TextUtils from "src/utils/text";
import { Icon } from "src/components/Shared/Icon";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import { objectTitle } from "src/core/files"; import { objectTitle } from "src/core/files";

View file

@ -3,13 +3,12 @@ import React from "react";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import { TITLE_SUFFIX } from "src/components/Shared"; import { TITLE_SUFFIX } from "src/components/Shared/constants";
import Mousetrap from "mousetrap"; import Mousetrap from "mousetrap";
import { FindSceneMarkersQueryResult } from "src/core/generated-graphql"; import { FindSceneMarkersQueryResult } from "src/core/generated-graphql";
import { queryFindSceneMarkers } from "src/core/StashService"; import { queryFindSceneMarkers } from "src/core/StashService";
import { NavUtils } from "src/utils"; import NavUtils from "src/utils/navigation";
import { useSceneMarkersList } from "src/hooks"; import { PersistanceLevel, useSceneMarkersList } from "src/hooks/ListHook";
import { PersistanceLevel } from "src/hooks/ListHook";
import { ListFilterModel } from "src/models/list-filter/filter"; import { ListFilterModel } from "src/models/list-filter/filter";
import { DisplayMode } from "src/models/list-filter/types"; import { DisplayMode } from "src/models/list-filter/types";
import { WallPanel } from "../Wall/WallPanel"; import { WallPanel } from "../Wall/WallPanel";

View file

@ -1,18 +1,15 @@
import { Form, Col, Row, Button, FormControl } from "react-bootstrap"; import { Form, Col, Row, Button, FormControl, Modal } from "react-bootstrap";
import React, { useCallback, useEffect, useMemo, useState } from "react"; import React, { useCallback, useEffect, useMemo, useState } from "react";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { import { Icon } from "../Shared/Icon";
GallerySelect, import { LoadingIndicator } from "../Shared/LoadingIndicator";
Icon, import { StringListSelect, GallerySelect, SceneSelect } from "../Shared/Select";
LoadingIndicator, import FormUtils from "src/utils/form";
Modal, import ImageUtils from "src/utils/image";
SceneSelect, import TextUtils from "src/utils/text";
StringListSelect,
} from "src/components/Shared";
import { FormUtils, ImageUtils, TextUtils } from "src/utils";
import { mutateSceneMerge, queryFindScenesByID } from "src/core/StashService"; import { mutateSceneMerge, queryFindScenesByID } from "src/core/StashService";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { faExchangeAlt, faSignInAlt } from "@fortawesome/free-solid-svg-icons"; import { faExchangeAlt, faSignInAlt } from "@fortawesome/free-solid-svg-icons";
import { import {
hasScrapedValues, hasScrapedValues,

View file

@ -2,7 +2,7 @@ import React, { lazy } from "react";
import { Route, Switch } from "react-router-dom"; import { Route, Switch } from "react-router-dom";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import { TITLE_SUFFIX } from "src/components/Shared"; import { TITLE_SUFFIX } from "src/components/Shared/constants";
import { PersistanceLevel } from "src/hooks/ListHook"; import { PersistanceLevel } from "src/hooks/ListHook";
const SceneList = lazy(() => import("./SceneList")); const SceneList = lazy(() => import("./SceneList"));

View file

@ -2,7 +2,7 @@ import { faChevronDown, faChevronUp } from "@fortawesome/free-solid-svg-icons";
import React, { PropsWithChildren, useState } from "react"; import React, { PropsWithChildren, useState } from "react";
import { Button, Collapse, Form, Modal, ModalProps } from "react-bootstrap"; import { Button, Collapse, Form, Modal, ModalProps } from "react-bootstrap";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { Icon } from "../Shared"; import { Icon } from "../Shared/Icon";
import { StringListInput } from "../Shared/StringListInput"; import { StringListInput } from "../Shared/StringListInput";
interface ISetting { interface ISetting {

View file

@ -3,7 +3,7 @@ import { Tab, Nav, Row, Col } from "react-bootstrap";
import { useHistory, useLocation } from "react-router-dom"; import { useHistory, useLocation } from "react-router-dom";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { Helmet } from "react-helmet"; import { Helmet } from "react-helmet";
import { TITLE_SUFFIX } from "src/components/Shared"; import { TITLE_SUFFIX } from "src/components/Shared/constants";
import { SettingsAboutPanel } from "./SettingsAboutPanel"; import { SettingsAboutPanel } from "./SettingsAboutPanel";
import { SettingsConfigurationPanel } from "./SettingsSystemPanel"; import { SettingsConfigurationPanel } from "./SettingsSystemPanel";
import { SettingsInterfacePanel } from "./SettingsInterfacePanel/SettingsInterfacePanel"; import { SettingsInterfacePanel } from "./SettingsInterfacePanel/SettingsInterfacePanel";

View file

@ -1,11 +1,9 @@
import React from "react"; import React from "react";
import { Button, Form } from "react-bootstrap"; import { Button, Form } from "react-bootstrap";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import { import { DurationInput } from "src/components/Shared/DurationInput";
DurationInput, import { PercentInput } from "src/components/Shared/PercentInput";
PercentInput, import { LoadingIndicator } from "src/components/Shared/LoadingIndicator";
LoadingIndicator,
} from "src/components/Shared";
import { CheckboxGroup } from "./CheckboxGroup"; import { CheckboxGroup } from "./CheckboxGroup";
import { SettingSection } from "../SettingSection"; import { SettingSection } from "../SettingSection";
import { import {
@ -16,13 +14,13 @@ import {
StringSetting, StringSetting,
} from "../Inputs"; } from "../Inputs";
import { SettingStateContext } from "../context"; import { SettingStateContext } from "../context";
import { DurationUtils } from "src/utils"; import DurationUtils from "src/utils/duration";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { import {
imageLightboxDisplayModeIntlMap, imageLightboxDisplayModeIntlMap,
imageLightboxScrollModeIntlMap, imageLightboxScrollModeIntlMap,
} from "src/core/enums"; } from "src/core/enums";
import { useInterfaceLocalForage } from "src/hooks"; import { useInterfaceLocalForage } from "src/hooks/LocalForage";
import { import {
ConnectionState, ConnectionState,
connectionStateLabel, connectionStateLabel,

View file

@ -1,5 +1,6 @@
import React from "react"; import React from "react";
import { Icon, LoadingIndicator } from "src/components/Shared"; import { Icon } from "../Shared/Icon";
import { LoadingIndicator } from "../Shared/LoadingIndicator";
import { StashSetting } from "./StashConfiguration"; import { StashSetting } from "./StashConfiguration";
import { SettingSection } from "./SettingSection"; import { SettingSection } from "./SettingSection";
import { BooleanSetting, StringListSetting, StringSetting } from "./Inputs"; import { BooleanSetting, StringListSetting, StringSetting } from "./Inputs";

View file

@ -3,9 +3,11 @@ import { Button } from "react-bootstrap";
import { FormattedMessage, useIntl } from "react-intl"; import { FormattedMessage, useIntl } from "react-intl";
import * as GQL from "src/core/generated-graphql"; import * as GQL from "src/core/generated-graphql";
import { mutateReloadPlugins, usePlugins } from "src/core/StashService"; import { mutateReloadPlugins, usePlugins } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { CollapseButton, Icon, LoadingIndicator } from "src/components/Shared"; import { CollapseButton } from "../Shared/CollapseButton";
import { Icon } from "../Shared/Icon";
import { LoadingIndicator } from "../Shared/LoadingIndicator";
import { SettingSection } from "./SettingSection"; import { SettingSection } from "./SettingSection";
import { Setting, SettingGroup } from "./Inputs"; import { Setting, SettingGroup } from "./Inputs";
import { faLink, faSyncAlt } from "@fortawesome/free-solid-svg-icons"; import { faLink, faSyncAlt } from "@fortawesome/free-solid-svg-icons";

View file

@ -8,9 +8,11 @@ import {
useListSceneScrapers, useListSceneScrapers,
useListGalleryScrapers, useListGalleryScrapers,
} from "src/core/StashService"; } from "src/core/StashService";
import { useToast } from "src/hooks"; import { useToast } from "src/hooks/Toast";
import { TextUtils } from "src/utils"; import TextUtils from "src/utils/text";
import { CollapseButton, Icon, LoadingIndicator } from "src/components/Shared"; import { CollapseButton } from "../Shared/CollapseButton";
import { Icon } from "../Shared/Icon";
import { LoadingIndicator } from "../Shared/LoadingIndicator";
import { ScrapeType } from "src/core/generated-graphql"; import { ScrapeType } from "src/core/generated-graphql";
import { SettingSection } from "./SettingSection"; import { SettingSection } from "./SettingSection";
import { BooleanSetting, StringListSetting, StringSetting } from "./Inputs"; import { BooleanSetting, StringListSetting, StringSetting } from "./Inputs";

Some files were not shown because too many files have changed in this diff Show more