diff --git a/web/src/screens/Dashboard.tsx b/web/src/screens/Dashboard.tsx index a5e0f7c..e73dfb7 100644 --- a/web/src/screens/Dashboard.tsx +++ b/web/src/screens/Dashboard.tsx @@ -7,10 +7,8 @@ import { Stats } from "./dashboard/Stats"; import { ActivityTable } from "./dashboard/ActivityTable"; export const Dashboard = () => ( -
-
- - -
-
+
+ + +
); diff --git a/web/src/screens/Logs.tsx b/web/src/screens/Logs.tsx index 4feeb12..f072700 100644 --- a/web/src/screens/Logs.tsx +++ b/web/src/screens/Logs.tsx @@ -102,11 +102,9 @@ export const Logs = () => { return (
-
-
-

Logs

-
-
+
+

Logs

+
diff --git a/web/src/screens/Releases.tsx b/web/src/screens/Releases.tsx index 5ff9261..894b9d8 100644 --- a/web/src/screens/Releases.tsx +++ b/web/src/screens/Releases.tsx @@ -3,17 +3,93 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ +import { useState } from "react"; +import { ChevronUpIcon, ChevronDownIcon } from "@heroicons/react/24/solid"; + import { ReleaseTable } from "./releases/ReleaseTable"; -export const Releases = () => ( -
-
-
-

Releases

-
-
-
- -
-
+const Code = ({ children }: { children: React.ReactNode }) => ( + + {children} + ); + +export const Releases = () => { + const [isHintOpen, setIsHintOpen] = useState(false); + return ( +
+
+

Releases

+ +

+ The search engine uses a special pattern-matching engine to filter out results. + Please + + to get tips on how to get relevant results. +

+ {isHintOpen ? ( +
+
+ Search tips +
+
+ You can use 2 special wildcard characters for the purpose of pattern matching. +
+ - Percent (%) - for matching any sequence of characters (equivalent to * in Regex) +
+ - Underscore (_) - for matching any single character (equivalent to . in Regex) +

+ + Additionally, autobrr supports keyword faceting. + The supported keywords are:{" "} + category, codec, episode, filter, group,{" "} + hdr, resolution, season, source, title and year. +

+ + Examples:
+ + year:2022 resolution:1080p (all 1080p from the year 2022) +
+ group:framestor hdr:DV (all Dolby Vision releases by a certain group, e.g. Framestor) +
+ Movie Title resolution:1080p (all releases starting with "Movie Title" in 1080p) +
+ The Show season:05 episode:03 (all releases starting with "The Show" related to S05E03) +
+ %collection hd% (all releases containing "collection hd" - in the same order - and with a space!) +
+ %collection_hd% (all releases containing "collection" AND "hd" - in the same order - but with a wildcard character in between, e.g. a space OR a dot OR any other character) + +

+ + As always, please refer to our + Search function usage + documentation page to keep up with the latest examples and information. +
+
+ ) : null} +
+
+ +
+
+ ); +} diff --git a/web/src/screens/Settings.tsx b/web/src/screens/Settings.tsx index 71c24ad..ba14743 100644 --- a/web/src/screens/Settings.tsx +++ b/web/src/screens/Settings.tsx @@ -78,7 +78,7 @@ function SidebarNav({ subNavigation }: SidebarNavProps) { @@ -88,11 +88,9 @@ function SidebarNav({ subNavigation }: SidebarNavProps) { export function Settings() { return (
-
-
-

Settings

-
-
+
+

Settings

+
diff --git a/web/src/screens/dashboard/Stats.tsx b/web/src/screens/dashboard/Stats.tsx index bf4e98e..b530717 100644 --- a/web/src/screens/dashboard/Stats.tsx +++ b/web/src/screens/dashboard/Stats.tsx @@ -15,11 +15,11 @@ interface StatsItemProps { const StatsItem = ({ name, placeholder, value }: StatsItemProps) => (
-

{name}

+

{name}

@@ -53,4 +53,4 @@ export const Stats = () => {
); -}; \ No newline at end of file +}; diff --git a/web/src/screens/filters/Details.tsx b/web/src/screens/filters/Details.tsx index 7d1eb61..a38f870 100644 --- a/web/src/screens/filters/Details.tsx +++ b/web/src/screens/filters/Details.tsx @@ -312,17 +312,15 @@ export function FilterDetails() { return (
-
-
-

- - Filters - -

-
-
+
+

+ + Filters + +

+
@@ -584,7 +582,7 @@ export function Advanced({ values }: AdvancedProps) {
- +

This field has full regex support (Golang flavour).

https://autobrr.com/filters#advanced

Remember to tick Use Regex below if using more than * and ?.

} />

This field has full regex support (Golang flavour).

https://autobrr.com/filters#advanced

Remember to tick Use Regex below if using more than * and ?.

} /> @@ -688,8 +686,8 @@ function WarningAlert({ text, alert, colors }: WarningAlertProps) { return (
Info
- {alert ?? "Warning!"} + {alert ?? "Warning!"} {" "}{text}
diff --git a/web/src/screens/filters/List.tsx b/web/src/screens/filters/List.tsx index 7f76d67..603da75 100644 --- a/web/src/screens/filters/List.tsx +++ b/web/src/screens/filters/List.tsx @@ -139,61 +139,58 @@ export function Filters() { return (
-
-
-

Filters

-
- - {({ open }) => ( - <> - - - - - - - - {({ active }) => ( - + + + + + + + {({ active }) => ( + - )} - - - - - )} - -
+ onClick={() => setShowImportModal(true)} + > + Import Filter + + )} + + + + + )} +
-
+
{showImportModal && (
@@ -212,14 +209,14 @@ export function Filters() { className="bg-white dark:bg-gray-700 py-2 px-4 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm text-sm font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 dark:focus:ring-blue-500" onClick={() => setShowImportModal(false)} > - Cancel + Cancel
@@ -351,7 +348,8 @@ interface FilterItemDropdownProps { const FilterItemDropdown = ({ filter, onToggle }: FilterItemDropdownProps) => { // This function handles the export of a filter to a JSON string - const handleExportJson = useCallback(async (discordFormat = false) => { try { + const handleExportJson = useCallback(async (discordFormat = false) => { + try { type CompleteFilterType = { id: number; name: string; @@ -449,10 +447,10 @@ const FilterItemDropdown = ({ filter, onToggle }: FilterItemDropdownProps) => { copyTextToClipboard(finalJson); } - } catch (error) { - console.error(error); - toast.custom((t) => ); - } + } catch (error) { + console.error(error); + toast.custom((t) => ); + } }, [filter]); const cancelModalButtonRef = useRef(null); @@ -858,7 +856,7 @@ const ListboxFilter = ({ // a unique option from a list const IndexerSelectFilter = ({ dispatch }: any) => { const { data, isSuccess } = useQuery({ - queryKey: ["filters","indexers_options"], + queryKey: ["filters", "indexers_options"], queryFn: () => APIClient.indexers.getOptions(), keepPreviousData: true, staleTime: Infinity diff --git a/web/src/screens/releases/ReleaseTable.tsx b/web/src/screens/releases/ReleaseTable.tsx index ce266bc..09ed3bb 100644 --- a/web/src/screens/releases/ReleaseTable.tsx +++ b/web/src/screens/releases/ReleaseTable.tsx @@ -408,8 +408,8 @@ export const ReleaseTable = () => { {headerGroup.headers.map((column) => { const { key: columnKey, ...columnRest } = column.getHeaderProps(column.getSortByToggleProps()); return ( - // Add the sorting props to control sorting. For this example - // we can add them into the header props + // Add the sorting props to control sorting. For this example + // we can add them into the header props { [key]: newValue })); + // + // FIXME: Warning: Function components cannot be given refs. Attempts to access this ref will fail. + // Did you mean to use React.forwardRef()? + // + // Check the render method of `Pe2`. + // at Checkbox (http://localhost:3000/src/components/Checkbox.tsx:14:28) + // at Pe2 (http://localhost:3000/node_modules/.vite/deps/@headlessui_react.js?v=e8629745:2164:12) + // at div + // at Ee (http://localhost:3000/node_modules/.vite/deps/@headlessui_react.js?v=e8629745:2106:12) + // at c5 (http://localhost:3000/node_modules/.vite/deps/@headlessui_react.js?v=e8629745:592:22) + // at De4 (http://localhost:3000/node_modules/.vite/deps/@headlessui_react.js?v=e8629745:3016:22) + // at He5 (http://localhost:3000/node_modules/.vite/deps/@headlessui_react.js?v=e8629745:3053:15) + // at div + // at c5 (http://localhost:3000/node_modules/.vite/deps/@headlessui_react.js?v=e8629745:592:22) + // at Me2 (http://localhost:3000/node_modules/.vite/deps/@headlessui_react.js?v=e8629745:2062:21) + // at IRCLogsDropdown (http://localhost:3000/src/screens/settings/Irc.tsx?t=1694269937935:1354:53) return ( - - + + Options { leaveTo="transform opacity-0 scale-95" > -
- - {() => ( - onSetValue("scrollOnNewLog", newValue)} - /> - )} - -
+ + {() => ( + onSetValue("scrollOnNewLog", newValue)} + /> + )} +
); }; + diff --git a/web/src/screens/settings/Releases.tsx b/web/src/screens/settings/Releases.tsx index cee316f..244c169 100644 --- a/web/src/screens/settings/Releases.tsx +++ b/web/src/screens/settings/Releases.tsx @@ -98,7 +98,7 @@ function DeleteReleases() { }; return ( -
+