Remember revealed archetype on future Wrapstodon visits (#37219)

This commit is contained in:
diondiondion
2025-12-12 12:03:00 +01:00
committed by GitHub
parent 8748f0812d
commit b72b507584
3 changed files with 15 additions and 3 deletions

View File

@@ -12,11 +12,13 @@ import replier from '@/images/archetypes/replier.png';
import space_elements from '@/images/archetypes/space_elements.png';
import { Avatar } from '@/mastodon/components/avatar';
import { Button } from '@/mastodon/components/button';
import { me } from '@/mastodon/initial_state';
import type { Account } from '@/mastodon/models/account';
import type {
AnnualReport,
Archetype as ArchetypeData,
} from '@/mastodon/models/annual_report';
import { wrapstodonSettings } from '@/mastodon/settings';
import styles from './index.module.scss';
import { ShareButton } from './share_button';
@@ -117,9 +119,16 @@ export const Archetype: React.FC<{
const wrapperRef = useRef<HTMLDivElement>(null);
const isSelfView = context === 'modal';
const [isRevealed, setIsRevealed] = useState(!isSelfView);
const [isRevealed, setIsRevealed] = useState(
() =>
!isSelfView ||
(me ? (wrapstodonSettings.get(me)?.archetypeRevealed ?? false) : true),
);
const reveal = useCallback(() => {
setIsRevealed(true);
if (me) {
wrapstodonSettings.set(me, { archetypeRevealed: true });
}
wrapperRef.current?.focus();
}, []);

View File

@@ -139,8 +139,8 @@ const persistVolume = (volume: number, muted: boolean) => {
};
const restoreVolume = (video: HTMLVideoElement) => {
const volume = (playerSettings.get('volume') as number | undefined) ?? 0.5;
const muted = (playerSettings.get('muted') as boolean | undefined) ?? false;
const volume = playerSettings.get('volume') ?? 0.5;
const muted = playerSettings.get('muted') ?? false;
video.volume = volume;
video.muted = muted;

View File

@@ -63,3 +63,6 @@ export const searchHistory = new Settings<Record<string, RecentSearch[]>>(
export const playerSettings = new Settings<{ volume: number; muted: boolean }>(
'mastodon_player',
);
export const wrapstodonSettings = new Settings<
Record<string, { archetypeRevealed: boolean }>
>('wrapstodon');