From 66cb7f49281fc05a9c344fa69609207681246d82 Mon Sep 17 00:00:00 2001 From: InfiniteTF Date: Fri, 3 Apr 2020 01:29:33 +0200 Subject: [PATCH] Update prettier to v2.0.1 and enable for SCSS (#420) --- ui/v2.5/.eslintrc.json | 10 + ui/v2.5/.stylelintrc | 4 +- ui/v2.5/package.json | 7 +- ui/v2.5/src/components/ErrorBoundary.tsx | 2 +- .../src/components/Galleries/GalleryList.tsx | 8 +- .../components/Galleries/GalleryViewer.tsx | 8 +- ui/v2.5/src/components/List/AddFilter.tsx | 16 +- ui/v2.5/src/components/List/ListFilter.tsx | 12 +- ui/v2.5/src/components/List/Pagination.tsx | 4 +- ui/v2.5/src/components/MainNavbar.tsx | 18 +- .../components/Movies/MovieDetails/Movie.tsx | 18 +- .../Movies/MovieDetails/MovieScenesPanel.tsx | 4 +- ui/v2.5/src/components/Movies/MovieList.tsx | 4 +- .../components/Performers/PerformerCard.tsx | 2 +- .../Performers/PerformerDetails/Performer.tsx | 4 +- .../PerformerDetailsPanel.tsx | 52 +- .../PerformerOperationsPanel.tsx | 2 +- .../PerformerDetails/PerformerScenesPanel.tsx | 6 +- .../components/Performers/PerformerList.tsx | 8 +- ui/v2.5/src/components/Performers/styles.scss | 4 +- .../SceneFilenameParser/ParserField.ts | 4 +- .../SceneFilenameParser/ParserInput.tsx | 26 +- .../SceneFilenameParser.tsx | 52 +- .../SceneFilenameParser/SceneParserRow.tsx | 44 +- .../SceneFilenameParser/styles.scss | 4 +- .../components/ScenePlayer/ScenePlayer.tsx | 20 +- .../ScenePlayer/ScenePlayerScrubber.tsx | 22 +- .../src/components/ScenePlayer/styles.scss | 2 +- ui/v2.5/src/components/Scenes/SceneCard.tsx | 10 +- .../Scenes/SceneDetails/PrimaryTags.tsx | 10 +- .../components/Scenes/SceneDetails/Scene.tsx | 2 +- .../Scenes/SceneDetails/SceneDetailPanel.tsx | 4 +- .../Scenes/SceneDetails/SceneEditPanel.tsx | 66 +- .../SceneDetails/SceneFileInfoPanel.tsx | 2 +- .../Scenes/SceneDetails/SceneMarkerForm.tsx | 22 +- .../Scenes/SceneDetails/SceneMarkersPanel.tsx | 2 +- .../Scenes/SceneDetails/SceneMoviePanel.tsx | 2 +- .../Scenes/SceneDetails/SceneMovieTable.tsx | 6 +- .../SceneDetails/SceneOperationsPanel.tsx | 4 +- .../SceneDetails/ScenePerformerPanel.tsx | 2 +- ui/v2.5/src/components/Scenes/SceneList.tsx | 16 +- .../src/components/Scenes/SceneListTable.tsx | 10 +- .../src/components/Scenes/SceneMarkerList.tsx | 6 +- .../Scenes/SceneSelectedOptions.tsx | 86 +- ui/v2.5/src/components/Scenes/styles.scss | 440 ++++----- .../Settings/SettingsAboutPanel.tsx | 2 +- .../Settings/SettingsConfigurationPanel.tsx | 10 +- .../Settings/SettingsInterfacePanel.tsx | 4 +- .../components/Settings/SettingsLogsPanel.tsx | 10 +- .../SettingsTasksPanel/GenerateButton.tsx | 2 +- .../SettingsTasksPanel/SettingsTasksPanel.tsx | 2 +- ui/v2.5/src/components/Settings/styles.scss | 3 +- .../Shared/FolderSelect/FolderSelect.tsx | 6 +- .../src/components/Shared/HoverPopover.tsx | 2 +- ui/v2.5/src/components/Shared/ImageInput.tsx | 2 +- .../components/Shared/LoadingIndicator.tsx | 2 +- ui/v2.5/src/components/Shared/Modal.tsx | 2 +- ui/v2.5/src/components/Shared/MultiSet.tsx | 16 +- ui/v2.5/src/components/Shared/Select.tsx | 96 +- ui/v2.5/src/components/Shared/TagLink.tsx | 2 +- ui/v2.5/src/components/Shared/index.ts | 2 +- ui/v2.5/src/components/Shared/styles.scss | 12 +- .../Studios/StudioDetails/Studio.tsx | 10 +- .../StudioDetails/StudioScenesPanel.tsx | 4 +- ui/v2.5/src/components/Studios/StudioList.tsx | 4 +- ui/v2.5/src/components/Tags/TagList.tsx | 4 +- ui/v2.5/src/components/Tags/styles.scss | 6 +- ui/v2.5/src/components/Wall/WallItem.tsx | 4 +- ui/v2.5/src/components/Wall/styles.scss | 15 +- ui/v2.5/src/core/StashService.ts | 172 ++-- ui/v2.5/src/hooks/ListHook.tsx | 44 +- ui/v2.5/src/hooks/Toast.tsx | 8 +- ui/v2.5/src/hooks/VideoHover.ts | 2 +- ui/v2.5/src/hooks/index.ts | 2 +- ui/v2.5/src/index.scss | 923 +++++++++--------- ui/v2.5/src/locale/index.ts | 2 +- .../models/list-filter/criteria/criterion.ts | 8 +- .../src/models/list-filter/criteria/gender.ts | 6 +- .../models/list-filter/criteria/is-missing.ts | 2 +- .../src/models/list-filter/criteria/movies.ts | 4 +- .../models/list-filter/criteria/performers.ts | 4 +- .../src/models/list-filter/criteria/rating.ts | 2 +- .../models/list-filter/criteria/studios.ts | 4 +- .../src/models/list-filter/criteria/tags.ts | 4 +- .../src/models/list-filter/criteria/utils.ts | 6 +- ui/v2.5/src/models/list-filter/filter.ts | 99 +- ui/v2.5/src/models/list-filter/types.ts | 4 +- ui/v2.5/src/serviceWorker.ts | 10 +- ui/v2.5/src/styles/_range.scss | 8 +- ui/v2.5/src/styles/_scrollbars.scss | 12 +- ui/v2.5/src/styles/_theme.scss | 17 +- ui/v2.5/src/utils/duration.ts | 2 +- ui/v2.5/src/utils/image.tsx | 2 +- ui/v2.5/src/utils/jwplayer.ts | 2 +- ui/v2.5/src/utils/navigation.ts | 8 +- ui/v2.5/src/utils/table.tsx | 8 +- ui/v2.5/src/utils/text.ts | 2 +- ui/v2.5/yarn.lock | 18 +- 98 files changed, 1365 insertions(+), 1299 deletions(-) diff --git a/ui/v2.5/.eslintrc.json b/ui/v2.5/.eslintrc.json index 5718d6a31..4fa535557 100644 --- a/ui/v2.5/.eslintrc.json +++ b/ui/v2.5/.eslintrc.json @@ -21,6 +21,16 @@ "warn", { "prefixWithI": "always" } ], + "import/extensions": [ + "error", + "ignorePackages", + { + "js": "never", + "jsx": "never", + "ts": "never", + "tsx": "never" + } + ], "import/named": "off", "import/namespace": "off", "import/default": "off", diff --git a/ui/v2.5/.stylelintrc b/ui/v2.5/.stylelintrc index 77cd341f2..a87318b34 100644 --- a/ui/v2.5/.stylelintrc +++ b/ui/v2.5/.stylelintrc @@ -2,6 +2,7 @@ "plugins": [ "stylelint-order" ], + "extends": "stylelint-config-prettier", "rules": { "indentation": 2, "at-rule-empty-line-before": [ "always", { @@ -33,7 +34,6 @@ "declaration-block-semicolon-space-before": "never", "declaration-block-single-line-max-declarations": 1, "declaration-block-trailing-semicolon": "always", - "declaration-colon-newline-after": "always-multi-line", "declaration-colon-space-after": "always-single-line", "declaration-colon-space-before": "never", "declaration-no-important": true, @@ -61,7 +61,6 @@ "no-descending-specificity": null, "no-invalid-double-slash-comments": true, "no-missing-end-of-source-newline": true, - "number-leading-zero": "never", "number-max-precision": 2, "number-no-trailing-zeros": true, "order/order": [ @@ -87,7 +86,6 @@ "string-quotes": "double", "time-min-milliseconds": 100, "unit-blacklist": ["em"], - "value-list-comma-newline-after": "always-multi-line", "value-list-comma-space-after": "always-single-line", "value-list-comma-space-before": "never", "value-no-vendor-prefix": true diff --git a/ui/v2.5/package.json b/ui/v2.5/package.json index 1a790570f..aa08d6c9d 100644 --- a/ui/v2.5/package.json +++ b/ui/v2.5/package.json @@ -11,7 +11,7 @@ "lint": "yarn lint:css && yarn lint:js", "lint:js": "eslint --cache src/**/*.{ts,tsx}", "lint:css": "stylelint 'src/**/*.scss'", - "format": "prettier --write \"src/**/!(generated-graphql).{js,jsx,ts,tsx}\"", + "format": "prettier --write \"src/**/!(generated-graphql).{js,jsx,ts,tsx,scss}\"", "gqlgen": "gql-gen --config codegen.yml", "extract": "NODE_ENV=development extract-messages -l=en,de -o src/locale -d en --flat false 'src/**/!(*.test).tsx'" }, @@ -80,7 +80,7 @@ "@typescript-eslint/parser": "^2.16.0", "eslint": "^6.7.2", "eslint-config-airbnb-typescript": "^6.3.1", - "eslint-config-prettier": "^6.9.0", + "eslint-config-prettier": "^6.10.1", "eslint-plugin-import": "^2.20.0", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-react": "^7.18.0", @@ -88,9 +88,10 @@ "extract-react-intl-messages": "^2.3.5", "node-sass": "4.13.1", "postcss-safe-parser": "^4.0.1", - "prettier": "1.19.1", + "prettier": "2.0.2", "react-scripts": "^3.3.1", "stylelint": "^13.0.0", + "stylelint-config-prettier": "^8.0.1", "stylelint-order": "^4.0.0", "typescript": "^3.7.5" } diff --git a/ui/v2.5/src/components/ErrorBoundary.tsx b/ui/v2.5/src/components/ErrorBoundary.tsx index 1beb1bfa9..302abb2cc 100644 --- a/ui/v2.5/src/components/ErrorBoundary.tsx +++ b/ui/v2.5/src/components/ErrorBoundary.tsx @@ -25,7 +25,7 @@ export class ErrorBoundary extends React.Component< public componentDidCatch(error: Error, errorInfo: ErrorInfo) { this.setState({ error, - errorInfo + errorInfo, }); } diff --git a/ui/v2.5/src/components/Galleries/GalleryList.tsx b/ui/v2.5/src/components/Galleries/GalleryList.tsx index c5477e587..428f12239 100644 --- a/ui/v2.5/src/components/Galleries/GalleryList.tsx +++ b/ui/v2.5/src/components/Galleries/GalleryList.tsx @@ -8,7 +8,7 @@ import { DisplayMode } from "src/models/list-filter/types"; export const GalleryList: React.FC = () => { const listData = useGalleriesList({ - renderContent + renderContent, }); function renderContent( @@ -31,7 +31,7 @@ export const GalleryList: React.FC = () => { - {result.data.findGalleries.galleries.map(gallery => ( + {result.data.findGalleries.galleries.map((gallery) => ( @@ -41,9 +41,7 @@ export const GalleryList: React.FC = () => { className="w-100 w-sm-auto" src={`${gallery.files[0].path}?thumb=true`} /> - ) : ( - undefined - )} + ) : undefined} diff --git a/ui/v2.5/src/components/Galleries/GalleryViewer.tsx b/ui/v2.5/src/components/Galleries/GalleryViewer.tsx index e0295919a..98785a2f9 100644 --- a/ui/v2.5/src/components/Galleries/GalleryViewer.tsx +++ b/ui/v2.5/src/components/Galleries/GalleryViewer.tsx @@ -29,14 +29,14 @@ export const GalleryViewer: FunctionComponent = ({ gallery }) => { setCurrentImage(currentImage + 1); } - const photos = gallery.files.map(file => ({ + const photos = gallery.files.map((file) => ({ src: file.path ?? "", - caption: file.name ?? "" + caption: file.name ?? "", })); - const thumbs = gallery.files.map(file => ({ + const thumbs = gallery.files.map((file) => ({ src: `${file.path}?thumb=true` || "", width: 1, - height: 1 + height: 1, })); return ( diff --git a/ui/v2.5/src/components/List/AddFilter.tsx b/ui/v2.5/src/components/List/AddFilter.tsx index 6dce02a4c..307261fe6 100644 --- a/ui/v2.5/src/components/List/AddFilter.tsx +++ b/ui/v2.5/src/components/List/AddFilter.tsx @@ -7,7 +7,7 @@ import { Criterion, CriterionType, DurationCriterion, - CriterionValue + CriterionValue, } from "src/models/list-filter/criteria/criterion"; import { NoneCriterion } from "src/models/list-filter/criteria/none"; import { makeCriteria } from "src/models/list-filter/criteria/utils"; @@ -118,7 +118,7 @@ export const AddFilter: React.FC = ( onChange={onChangedModifierSelect} value={criterion.modifier} > - {criterion.modifierOptions.map(c => ( + {criterion.modifierOptions.map((c) => ( @@ -149,15 +149,15 @@ export const AddFilter: React.FC = ( { + onSelect={(items) => { const newCriterion = _.cloneDeep(criterion); - newCriterion.value = items.map(i => ({ + newCriterion.value = items.map((i) => ({ id: i.id, - label: i.name! + label: i.name!, })); setCriterion(newCriterion); }} - ids={criterion.value.map(labeled => labeled.id)} + ids={criterion.value.map((labeled) => labeled.id)} /> ); } @@ -169,7 +169,7 @@ export const AddFilter: React.FC = ( onChange={onChangedSingleSelect} value={criterion.value.toString()} > - {criterion.options.map(c => ( + {criterion.options.map((c) => ( @@ -215,7 +215,7 @@ export const AddFilter: React.FC = ( onChange={onChangedCriteriaType} value={criterion.type} > - {props.filter.criterionOptions.map(c => ( + {props.filter.criterionOptions.map((c) => ( diff --git a/ui/v2.5/src/components/List/ListFilter.tsx b/ui/v2.5/src/components/List/ListFilter.tsx index 7ffddab7f..8fd5950ee 100644 --- a/ui/v2.5/src/components/List/ListFilter.tsx +++ b/ui/v2.5/src/components/List/ListFilter.tsx @@ -9,7 +9,7 @@ import { Form, OverlayTrigger, Tooltip, - SafeAnchor + SafeAnchor, } from "react-bootstrap"; import { Icon } from "src/components/Shared"; @@ -106,7 +106,7 @@ export const ListFilter: React.FC = ( } function renderSortByOptions() { - return props.filter.sortByOptions.map(option => ( + return props.filter.sortByOptions.map((option) => ( = ( return "Wall"; } } - return props.filter.displayModeOptions.map(option => ( + return props.filter.displayModeOptions.map((option) => ( = ( } function renderFilterTags() { - return props.filter.criteria.map(criterion => ( + return props.filter.criteria.map((criterion) => ( = ( const options = [renderSelectAll(), renderSelectNone()]; if (props.otherOperations) { - props.otherOperations.forEach(o => { + props.otherOperations.forEach((o) => { options.push( = ( value={props.filter.itemsPerPage.toString()} className="btn-secondary filter-item col-1 d-none d-sm-inline" > - {PAGE_SIZE_OPTIONS.map(s => ( + {PAGE_SIZE_OPTIONS.map((s) => ( diff --git a/ui/v2.5/src/components/List/Pagination.tsx b/ui/v2.5/src/components/List/Pagination.tsx index cd5c8ae3c..bbe85ab64 100644 --- a/ui/v2.5/src/components/List/Pagination.tsx +++ b/ui/v2.5/src/components/List/Pagination.tsx @@ -12,7 +12,7 @@ export const Pagination: React.FC = ({ itemsPerPage, currentPage, totalItems, - onChangePage + onChangePage, }) => { const totalPages = Math.ceil(totalItems / itemsPerPage); @@ -34,7 +34,7 @@ export const Pagination: React.FC = ({ } const pages = [...Array(endPage + 1 - startPage).keys()].map( - i => startPage + i + (i) => startPage + i ); const calculatePageClass = (buttonPage: number) => { diff --git a/ui/v2.5/src/components/MainNavbar.tsx b/ui/v2.5/src/components/MainNavbar.tsx index cef3716ab..e5ff82174 100644 --- a/ui/v2.5/src/components/MainNavbar.tsx +++ b/ui/v2.5/src/components/MainNavbar.tsx @@ -17,38 +17,38 @@ const menuItems: IMenuItem[] = [ { icon: "play-circle", messageID: "scenes", - href: "/scenes" + href: "/scenes", }, { href: "/movies", icon: "film", - messageID: "movies" + messageID: "movies", }, { href: "/scenes/markers", icon: "map-marker-alt", - messageID: "markers" + messageID: "markers", }, { href: "/galleries", icon: "image", - messageID: "galleries" + messageID: "galleries", }, { href: "/performers", icon: "user", - messageID: "performers" + messageID: "performers", }, { href: "/studios", icon: "video", - messageID: "studios" + messageID: "studios", }, { href: "/tags", icon: "tag", - messageID: "tags" - } + messageID: "tags", + }, ]; export const MainNavbar: React.FC = () => { @@ -127,7 +127,7 @@ export const MainNavbar: React.FC = () => {