diff --git a/src/components/Common/Alert/index.tsx b/src/components/Common/Alert/index.tsx index 15d63eae..1b4bd854 100644 --- a/src/components/Common/Alert/index.tsx +++ b/src/components/Common/Alert/index.tsx @@ -77,7 +77,7 @@ const Alert: React.FC = ({ title, children, type }) => { } return ( -
+
{design.svg}
diff --git a/src/components/Common/Header/index.tsx b/src/components/Common/Header/index.tsx index 3c743a26..77dbd159 100644 --- a/src/components/Common/Header/index.tsx +++ b/src/components/Common/Header/index.tsx @@ -11,14 +11,14 @@ const Header: React.FC = ({ subtext, }) => { return ( -
+
-

- +

+ {children}

- {subtext &&
{subtext}
} + {subtext &&
{subtext}
}

); diff --git a/src/components/Common/List/index.tsx b/src/components/Common/List/index.tsx index 89ba88e1..1f723c65 100644 --- a/src/components/Common/List/index.tsx +++ b/src/components/Common/List/index.tsx @@ -8,8 +8,8 @@ interface ListItemProps { const ListItem: React.FC = ({ title, children }) => { return (
-
{title}
-
+
{title}
+
{children}
@@ -25,12 +25,10 @@ const List: React.FC = ({ title, subTitle, children }) => { return ( <>
-

{title}

- {subTitle && ( -

{subTitle}

- )} +

{title}

+ {subTitle &&

{subTitle}

}
-
+
{children}
diff --git a/src/components/Common/Modal/index.tsx b/src/components/Common/Modal/index.tsx index 18b6c074..77abc646 100644 --- a/src/components/Common/Modal/index.tsx +++ b/src/components/Common/Modal/index.tsx @@ -112,7 +112,7 @@ const Modal: React.FC = ({ )}
{title && ( diff --git a/src/components/Common/Table/index.tsx b/src/components/Common/Table/index.tsx index f9f1040f..dd15b9e6 100644 --- a/src/components/Common/Table/index.tsx +++ b/src/components/Common/Table/index.tsx @@ -3,7 +3,7 @@ import { withProperties } from '../../../utils/typeHelpers'; const TBody: React.FC = ({ children }) => { return ( - {children} + {children} ); }; diff --git a/src/components/Discover/DiscoverMovies.tsx b/src/components/Discover/DiscoverMovies.tsx index 8491aa30..243edf7a 100644 --- a/src/components/Discover/DiscoverMovies.tsx +++ b/src/components/Discover/DiscoverMovies.tsx @@ -68,9 +68,11 @@ const DiscoverMovies: React.FC = () => { return ( <> -
- -
+
+
+ +
+
{ return ( <> -
- -
+
+
+ +
+
{ return ( <> -
- -
+
+
+ +
+
{ return ( <> -
- -
+
+
+ +
+
{ leaveTo="transform opacity-0 scale-95" >
-
+
= ({ } />
-
+
diff --git a/src/components/PermissionOption/index.tsx b/src/components/PermissionOption/index.tsx index f8c0677b..b6de4e39 100644 --- a/src/components/PermissionOption/index.tsx +++ b/src/components/PermissionOption/index.tsx @@ -41,12 +41,11 @@ const PermissionOption: React.FC = ({ : '' }`} > -
+
= ({ } />
-
-
{(option.children ?? []).map((child) => ( -
+
= ({ if (!title && !error) { return ( - + ); @@ -110,14 +110,14 @@ const RequestItem: React.FC = ({ if (!title || !requestData) { return ( - + ); } return ( - + = ({
{requestData.modifiedBy ? ( - {requestData.modifiedBy.displayName} - ( - - ) + {requestData.modifiedBy.displayName} + + ( + + ) + ) : ( N/A diff --git a/src/components/RequestList/index.tsx b/src/components/RequestList/index.tsx index 7b682ac5..1934e594 100644 --- a/src/components/RequestList/index.tsx +++ b/src/components/RequestList/index.tsx @@ -56,7 +56,7 @@ const RequestList: React.FC = () => { <>
{intl.formatMessage(messages.requests)}
-
+
{ setCurrentFilter(e.target.value as Filter); }} value={currentFilter} - className="flex-1 block w-full py-2 pl-3 pr-10 text-base leading-6 text-white bg-gray-700 border-gray-500 rounded-r-md form-select focus:outline-none focus:ring-blue focus:border-gray-500 sm:text-sm sm:leading-5 disabled:opacity-50" + className="rounded-r-only" >
- {intl.formatMessage(messages.noresults)} +
+ + {intl.formatMessage(messages.noresults)} + {currentFilter !== 'all' && (
-

+

{intl.formatMessage(messages.notificationAgentsSettings)}

-

+

{intl.formatMessage(messages.notificationAgentSettingsDescription)}

@@ -294,7 +286,6 @@ const SettingsNotifications: React.FC = ({ children }) => { )?.route } aria-label="Selected tab" - className="block w-full py-2 pl-3 pr-10 mt-1 text-base leading-6 text-white transition duration-150 ease-in-out bg-gray-800 border-gray-700 rounded-md form-select focus:outline-none focus:ring-blue focus:border-blue-300 sm:text-sm sm:leading-5" > {settingsRoutes.map((route, index) => ( {
-
{children}
+
{children}
); }; diff --git a/src/components/Settings/SettingsPlex.tsx b/src/components/Settings/SettingsPlex.tsx index 22a2dc3e..57234ec9 100644 --- a/src/components/Settings/SettingsPlex.tsx +++ b/src/components/Settings/SettingsPlex.tsx @@ -25,7 +25,7 @@ const messages = defineMessages({ serverLocal: 'local', serverRemote: 'remote', serverConnected: 'connected', - serverpresetManualMessage: 'Manually configure', + serverpresetManualMessage: 'Manual configuration', serverpresetRefreshing: 'Retrieving servers…', serverpresetLoad: 'Press the button to load available servers', toastPlexRefresh: 'Retrieving server list from Plex', @@ -259,14 +259,14 @@ const SettingsPlex: React.FC = ({ onComplete }) => { } return ( <> -
-

+
+

-

+

-
+
{intl.formatMessage(messages.settingUpPlexDescription, { RegisterPlexTVLink: function RegisterPlexTVLink(msg) { @@ -346,200 +346,172 @@ const SettingsPlex: React.FC = ({ onComplete }) => { isSubmitting, }) => { return ( - -
-
- -
-
- -
+ +
+ +
+
+
-
- -
-
- { + const targPreset = + availablePresets[Number(e.target.value)]; + if (targPreset) { + setFieldValue('hostname', targPreset.host); + setFieldValue('port', targPreset.port); + setFieldValue('useSsl', targPreset.ssl); + } + setFieldTouched('hostname'); + setFieldTouched('port'); + setFieldTouched('useSsl'); + }} + > + + {availablePresets.map((server, index) => ( + - {availablePresets.map((server, index) => ( - - ))} - - -
+ + +
-
-
-
- -
-
- - {values.useSsl ? 'https://' : 'http://'} - - -
- {errors.hostname && touched.hostname && ( -
- {errors.hostname} -
- )} -
-
-
-
-
- -
-
- -
- {errors.port && touched.port && ( -
{errors.port}
- )} -
-
+
+
+ +
+
+ + {values.useSsl ? 'https://' : 'http://'} + +
-
- -
- { - setFieldValue('useSsl', !values.useSsl); - }} - className="w-6 h-6 text-indigo-600 transition duration-150 ease-in-out rounded-md form-checkbox" - /> -
+ {errors.hostname && touched.hostname && ( +
{errors.hostname}
+ )} +
+
+
+ +
+
+
+ {errors.port && touched.port && ( +
{errors.port}
+ )} +
+
+
+ +
+ { + setFieldValue('useSsl', !values.useSsl); + }} + />
{submitError && ( -
+
= ({ onComplete }) => {
)} -
+
-
+
+
+
    {data?.libraries.map((library) => ( = ({ onComplete }) => { ))}
-
-

+
+

-

+

-
-
-
- {dataSync?.running && ( -
- )} -
- - {dataSync?.running - ? `${dataSync.progress} of ${dataSync.total}` - : 'Not running'} - -
+
+
+
+
+ {dataSync?.running && ( +
+ )} +
+ + {dataSync?.running + ? `${dataSync.progress} of ${dataSync.total}` + : 'Not running'} +
-
- {dataSync?.running && ( - <> - {dataSync.currentLibrary && ( -
- - - -
- )} -
- +
+
+ {dataSync?.running && ( + <> + {dataSync.currentLibrary && ( +
+ - library.id === dataSync.currentLibrary?.id - ) + 1 - ).length - : 0, - }} + {...messages.currentlibrary} + values={{ name: dataSync.currentLibrary.name }} />
- - )} -
- {!dataSync?.running && ( - )} +
+ + + library.id === dataSync.currentLibrary?.id + ) + 1 + ).length + : 0, + }} + /> + +
+ + )} +
+ {!dataSync?.running && ( + + )} - {dataSync?.running && ( - - )} -
+ {dataSync?.running && ( + + )}
diff --git a/src/components/Settings/SettingsServices.tsx b/src/components/Settings/SettingsServices.tsx index a58cb5e7..7c68cb0d 100644 --- a/src/components/Settings/SettingsServices.tsx +++ b/src/components/Settings/SettingsServices.tsx @@ -18,10 +18,10 @@ import Alert from '../Common/Alert'; const messages = defineMessages({ radarrsettings: 'Radarr Settings', radarrSettingsDescription: - 'Configure your Radarr connection below. You can have multiple Radarr configurations but only two can be active as defaults at any time (one for standard HD and one for 4K). Administrators can override the server will be used when a new request is made.', + 'Configure your Radarr connection below. You can have multiple Radarr configurations, but only two can be active as defaults at any time (one for standard HD and one for 4K). Administrators can override the server which is used for new requests.', sonarrsettings: 'Sonarr Settings', sonarrSettingsDescription: - 'Configure your Sonarr connection below. You can have multiple Sonarr configurations but only two can be active as defaults at any time (one for standard HD and one for 4K). Administrators can override the server will be used when a new request is made.', + 'Configure your Sonarr connection below. You can have multiple Sonarr configurations, but only two can be active as defaults at any time (one for standard HD and one for 4K). Administrators can override the server which is used for new requests.', deleteserverconfirm: 'Are you sure you want to delete this server?', edit: 'Edit', delete: 'Delete', @@ -65,7 +65,7 @@ const ServerInstance: React.FC = ({
-

+

{name}

{isDefault && ( @@ -198,11 +198,11 @@ const SettingsServices: React.FC = () => { return ( <> -
-

+
+

-

+

@@ -251,7 +251,7 @@ const SettingsServices: React.FC = () => { -
+
{!radarrData && !radarrError && } {radarrData && !radarrError && ( <> @@ -283,10 +283,11 @@ const SettingsServices: React.FC = () => { } /> ))} -
  • +
  • -
    -

    +
    +

    -

    +

    -
    +
    {!sonarrData && !sonarrError && } {sonarrData && !sonarrError && ( <> @@ -352,7 +353,7 @@ const SettingsServices: React.FC = () => { } /> ))} -
  • +
  • - )} - {data?.mediaInfo && - data?.mediaInfo.status4k !== MediaStatus.AVAILABLE && ( +
    + )} + {data?.mediaInfo && + data?.mediaInfo.status4k !== MediaStatus.AVAILABLE && ( +
    - )} -
    +
  • + )}
    {intl.formatMessage(messages.allseasonsmarkedavailable)}
    diff --git a/src/components/UserEdit/index.tsx b/src/components/UserEdit/index.tsx index 5c90eb76..8cccad9e 100644 --- a/src/components/UserEdit/index.tsx +++ b/src/components/UserEdit/index.tsx @@ -19,9 +19,9 @@ export const messages = defineMessages({ avatar: 'Avatar', email: 'Email', permissions: 'Permissions', - save: 'Save', + save: 'Save Changes', saving: 'Saving…', - usersaved: 'User saved', + usersaved: 'User saved!', userfail: 'Something went wrong while saving the user.', }); @@ -85,141 +85,98 @@ const UserEdit: React.FC = () => { > {({ isSubmitting, handleSubmit }) => ( -
    - -
    -
    -
    -
    - {user?.userType === UserType.PLEX && ( -
    - -
    - -
    -
    - )} -
    - -
    - -
    -
    -
    - -
    +
    +
    +
    + +
    +
    + {user?.userType === UserType.PLEX && ( +
    + +
    +
    - -
    - -
    -
    - -
    + )} +
    + +
    +
    +
    - -
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + + + +
    +
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - setCurrentPermission(newPermission) - } - /> -
    -
    -
    -
    -
    -
    -
    - - - +
    +
    +
    + + + +
    +
    + + setCurrentPermission(newPermission) + } + />
    +
    +
    + + + +
    +
    )} diff --git a/src/components/UserList/BulkEditModal.tsx b/src/components/UserList/BulkEditModal.tsx index d3828082..b036e8e2 100644 --- a/src/components/UserList/BulkEditModal.tsx +++ b/src/components/UserList/BulkEditModal.tsx @@ -89,22 +89,25 @@ const BulkEditModal: React.FC = ({ okText={intl.formatMessage(userEditMessages.save)} onCancel={onCancel} > -
    -
    -
    - -
    -
    -
    -
    - setCurrentPermission(newPermission)} - /> +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + setCurrentPermission(newPermission) + } + /> +
    +
    diff --git a/src/components/UserList/index.tsx b/src/components/UserList/index.tsx index 86e1b189..6bd3da6a 100644 --- a/src/components/UserList/index.tsx +++ b/src/components/UserList/index.tsx @@ -282,50 +282,43 @@ const UserList: React.FC = () => { {intl.formatMessage(messages.passwordinfodescription)} -
    -
    -