Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions public/_locales/de/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,36 @@
},
"settingsLinks": {
"message": "Links"
},
"enabledCountLabel": {
"message": "$1 von $2 Trackern aktiviert",
"placeholders": {
"enabled": {
"content": "$1",
"example": "3"
},
"total": {
"content": "$2",
"example": "7"
}
}
},
"allTrackersAlreadyEnabled": {
"message": "Alle Tracker sind bereits aktiviert"
},
"allTrackersAlreadyDisabled": {
"message": "Alle Tracker sind bereits deaktiviert"
},
"preferencesSaveError": {
"message": "Änderungen konnten nicht gespeichert werden. Versuchen Sie es erneut."
},
"externalLinkLabel": {
"message": "$1 (wird in neuem Tab geöffnet)",
"placeholders": {
"label": {
"content": "$1",
"example": "Open Source"
}
}
}
}
31 changes: 31 additions & 0 deletions public/_locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,36 @@
},
"settingsLinks": {
"message": "Links"
},
"enabledCountLabel": {
"message": "$1 of $2 trackers enabled",
"placeholders": {
"enabled": {
"content": "$1",
"example": "3"
},
"total": {
"content": "$2",
"example": "7"
}
}
},
"allTrackersAlreadyEnabled": {
"message": "All trackers are already enabled"
},
"allTrackersAlreadyDisabled": {
"message": "All trackers are already disabled"
},
"preferencesSaveError": {
"message": "Couldn't save changes. Try again."
},
"externalLinkLabel": {
"message": "$1 (opens in new tab)",
"placeholders": {
"label": {
"content": "$1",
"example": "Open source"
}
}
}
}
31 changes: 31 additions & 0 deletions public/_locales/es/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,36 @@
},
"settingsLinks": {
"message": "Enlaces"
},
"enabledCountLabel": {
"message": "$1 de $2 rastreadores activados",
"placeholders": {
"enabled": {
"content": "$1",
"example": "3"
},
"total": {
"content": "$2",
"example": "7"
}
}
},
"allTrackersAlreadyEnabled": {
"message": "Todos los rastreadores ya están activados"
},
"allTrackersAlreadyDisabled": {
"message": "Todos los rastreadores ya están desactivados"
},
"preferencesSaveError": {
"message": "No se pudieron guardar los cambios. Inténtalo de nuevo."
},
"externalLinkLabel": {
"message": "$1 (se abre en una pestaña nueva)",
"placeholders": {
"label": {
"content": "$1",
"example": "Código abierto"
}
}
}
}
31 changes: 31 additions & 0 deletions public/_locales/fr/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,36 @@
},
"settingsLinks": {
"message": "Liens"
},
"enabledCountLabel": {
"message": "$1 tracker(s) activé(s) sur $2",
"placeholders": {
"enabled": {
"content": "$1",
"example": "3"
},
"total": {
"content": "$2",
"example": "7"
}
}
},
"allTrackersAlreadyEnabled": {
"message": "Tous les trackers sont déjà activés"
},
"allTrackersAlreadyDisabled": {
"message": "Tous les trackers sont déjà désactivés"
},
"preferencesSaveError": {
"message": "Impossible d'enregistrer les modifications. Réessayez."
},
"externalLinkLabel": {
"message": "$1 (s'ouvre dans un nouvel onglet)",
"placeholders": {
"label": {
"content": "$1",
"example": "Open source"
}
}
}
}
31 changes: 31 additions & 0 deletions public/_locales/pt_BR/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,36 @@
},
"settingsLinks": {
"message": "Links"
},
"enabledCountLabel": {
"message": "$1 de $2 rastreadores ativados",
"placeholders": {
"enabled": {
"content": "$1",
"example": "3"
},
"total": {
"content": "$2",
"example": "7"
}
}
},
"allTrackersAlreadyEnabled": {
"message": "Todos os rastreadores já estão ativados"
},
"allTrackersAlreadyDisabled": {
"message": "Todos os rastreadores já estão desativados"
},
"preferencesSaveError": {
"message": "Não foi possível salvar as alterações. Tente novamente."
},
"externalLinkLabel": {
"message": "$1 (abre em uma nova aba)",
"placeholders": {
"label": {
"content": "$1",
"example": "Código aberto"
}
}
}
}
31 changes: 31 additions & 0 deletions public/_locales/ru/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,36 @@
},
"settingsLinks": {
"message": "Ссылки"
},
"enabledCountLabel": {
"message": "Включено трекеров: $1 из $2",
"placeholders": {
"enabled": {
"content": "$1",
"example": "3"
},
"total": {
"content": "$2",
"example": "7"
}
}
},
"allTrackersAlreadyEnabled": {
"message": "Все трекеры уже включены"
},
"allTrackersAlreadyDisabled": {
"message": "Все трекеры уже выключены"
},
"preferencesSaveError": {
"message": "Не удалось сохранить изменения. Повторите попытку."
},
"externalLinkLabel": {
"message": "$1 (откроется в новой вкладке)",
"placeholders": {
"label": {
"content": "$1",
"example": "Открытый код"
}
}
}
}
31 changes: 31 additions & 0 deletions public/_locales/zh_CN/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,36 @@
},
"settingsLinks": {
"message": "链接"
},
"enabledCountLabel": {
"message": "已启用 $1 / $2 个追踪器",
"placeholders": {
"enabled": {
"content": "$1",
"example": "3"
},
"total": {
"content": "$2",
"example": "7"
}
}
},
"allTrackersAlreadyEnabled": {
"message": "所有追踪器都已启用"
},
"allTrackersAlreadyDisabled": {
"message": "所有追踪器都已禁用"
},
"preferencesSaveError": {
"message": "无法保存更改。请重试。"
},
"externalLinkLabel": {
"message": "$1(在新标签页中打开)",
"placeholders": {
"label": {
"content": "$1",
"example": "开源"
}
}
}
}
16 changes: 16 additions & 0 deletions src/entrypoints/steam.content/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,25 @@
}

.trackeroo-empty .count_link_label {
display: block;
font-size: 12px;
color: #56707f;
}

.trackeroo-empty-help {
display: block;
margin-top: 2px;
overflow: hidden;
text-overflow: ellipsis;
font:
11px / 14px "Motiva Sans",
Arial,
Helvetica,
sans-serif;
color: #8f98a0;
white-space: nowrap;
}

.trackeroo-trigger:hover .count_link_label,
.trackeroo-root.is-open .count_link_label {
color: #fff;
Expand Down Expand Up @@ -75,6 +90,7 @@
cursor: default;
}

.trackeroo-trigger:focus-visible,
.trackeroo-menu-item:focus-visible {
outline: 1px solid #66c0f4;
outline-offset: -1px;
Expand Down
33 changes: 31 additions & 2 deletions src/popup/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,41 @@ import type { PopupTab } from "./components/popup-tabs";
import { SettingsTab } from "./components/settings-tab";
import { TrackersTab } from "./components/trackers-tab";

const skeletonRows = ["first", "second", "third", "fourth"] as const;

function PopupLoadingSkeleton() {
return (
<div
aria-busy="true"
className="flex w-[280px] flex-col gap-3 bg-black px-4 pt-4 pb-4"
>
<div className="flex items-start justify-between gap-3">
<div className="flex flex-1 flex-col gap-2">
<div className="h-4 w-24 animate-pulse rounded bg-neutral-900" />
<div className="h-3 w-40 animate-pulse rounded bg-neutral-900" />
</div>
<div className="h-5 w-10 animate-pulse rounded-full bg-neutral-900" />
</div>
<div className="h-8 animate-pulse rounded-lg bg-neutral-900" />
<div className="flex flex-col gap-1">
{skeletonRows.map((row) => (
<div
className="h-9 animate-pulse rounded-md bg-neutral-900/70"
key={row}
/>
))}
</div>
</div>
);
}

export function PopupApp() {
const { ready, locale, setLocale } = useLocale();
const { preferences, toggle, setAll } = useTrackerPreferences();
const { error, preferences, toggle, setAll } = useTrackerPreferences();
const [activeTab, setActiveTab] = useState<PopupTab>("trackers");

if (!ready) {
return null;
return <PopupLoadingSkeleton />;
}

const enabledCount = TRACKERS.filter(
Expand All @@ -29,6 +57,7 @@ export function PopupApp() {
>
{activeTab === "trackers" ? (
<TrackersTab
error={error}
onSetAll={setAll}
onToggle={toggle}
preferences={preferences}
Expand Down
2 changes: 1 addition & 1 deletion src/popup/components/language-picker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ interface LanguagePickerProps {
}

const selectClass =
"w-full rounded-md border border-neutral-800 bg-neutral-900/50 px-2.5 py-2 text-[13px] text-white outline-none transition-colors hover:border-neutral-700 focus:border-neutral-600";
"w-full rounded-md border border-neutral-800 bg-neutral-900/50 px-2.5 py-2 text-[13px] text-white outline-none transition-colors hover:border-neutral-700 focus:border-neutral-600 focus-visible:ring-2 focus-visible:ring-neutral-500 focus-visible:ring-offset-2 focus-visible:ring-offset-black";

export function LanguagePicker({ locale, onChange }: LanguagePickerProps) {
return (
Expand Down
Loading
Loading