diff --git a/src/components/tracker/SettingsTrackerCard.tsx b/src/components/tracker/SettingsTrackerCard.tsx index 320617c1..7a6fabc5 100644 --- a/src/components/tracker/SettingsTrackerCard.tsx +++ b/src/components/tracker/SettingsTrackerCard.tsx @@ -24,7 +24,7 @@ import Button from '@mui/material/Button'; import { PasswordTextField } from '@/components/atoms/PasswordTextField.tsx'; import { makeToast } from '@/components/util/Toast.tsx'; import { requestManager } from '@/lib/requests/RequestManager.ts'; -import { TBaseTracker } from '@/lib/data/Trackers.ts'; +import { TBaseTracker, Trackers } from '@/lib/data/Trackers.ts'; export const SettingsTrackerCard = ({ tracker }: { tracker: TBaseTracker }) => { const { t } = useTranslation(); @@ -93,7 +93,7 @@ export const SettingsTrackerCard = ({ tracker }: { tracker: TBaseTracker }) => { /> - {tracker.isLoggedIn && ( + {Trackers.isLoggedIn(tracker) && ( @@ -101,12 +101,12 @@ export const SettingsTrackerCard = ({ tracker }: { tracker: TBaseTracker }) => { {t( - tracker.isLoggedIn + Trackers.isLoggedIn(tracker) ? 'tracking.settings.dialog.title.log_out' : 'tracking.settings.dialog.title.log_in', { name: tracker.name }, @@ -142,9 +142,9 @@ export const SettingsTrackerCard = ({ tracker }: { tracker: TBaseTracker }) => { !tracker.isLoggedIn && (isCredentialLoginInProgress || !username.length || !password.length) } - onClick={() => (tracker.isLoggedIn ? handleLogout() : handleLogin())} + onClick={() => (Trackers.isLoggedIn(tracker) ? handleLogout() : handleLogin())} > - {t(tracker.isLoggedIn ? 'global.button.log_out' : 'global.button.log_in')} + {t(Trackers.isLoggedIn(tracker) ? 'global.button.log_out' : 'global.button.log_in')} diff --git a/src/lib/data/Trackers.ts b/src/lib/data/Trackers.ts index 190f7b20..60f4d8e5 100644 --- a/src/lib/data/Trackers.ts +++ b/src/lib/data/Trackers.ts @@ -26,7 +26,7 @@ export type TrackerManga = TrackerSearchQuery['searchTracker']['trackSearches'][ export type TBaseTracker = GetTrackersQuery['trackers']['nodes'][number]; -type LoggedInInfo = Pick; +type LoggedInInfo = Pick; type TrackRecordTrackerInfo = { tracker: Partial }; @@ -43,8 +43,12 @@ export class Trackers { return this.isUnsetDate(date) ? undefined : date; } + static isLoggedIn(tracker: Tracker): boolean { + return tracker.isLoggedIn && !tracker.isTokenExpired; + } + static getLoggedIn(trackers: Tracker[]): Tracker[] { - return trackers.filter((tracker) => tracker.isLoggedIn); + return trackers.filter(this.isLoggedIn); } static getTrackers(