add secret page
This commit is contained in:
@ -21,6 +21,9 @@ interface CoinsDisplayProps {
|
||||
backgroundColor?: string;
|
||||
textColor?: string;
|
||||
|
||||
onClick?: () => void;
|
||||
disableRefreshOnClick?: boolean;
|
||||
|
||||
sx?: SxProps<Theme>;
|
||||
}
|
||||
|
||||
@ -40,6 +43,9 @@ export default function CoinsDisplay({
|
||||
backgroundColor = 'rgba(0, 0, 0, 0.2)',
|
||||
textColor = 'white',
|
||||
|
||||
onClick,
|
||||
disableRefreshOnClick = false,
|
||||
|
||||
sx,
|
||||
}: CoinsDisplayProps) {
|
||||
const [isLoading, setIsLoading] = useState<boolean>(false);
|
||||
@ -61,6 +67,14 @@ export default function CoinsDisplay({
|
||||
}
|
||||
};
|
||||
|
||||
const handleClick = () => {
|
||||
// 1) если передали внешний обработчик — выполняем его
|
||||
if (onClick) onClick();
|
||||
|
||||
// 2) опционально оставляем обновление баланса по клику
|
||||
if (!disableRefreshOnClick && username) fetchCoinsData();
|
||||
};
|
||||
|
||||
const [coins, setCoins] = useState<number>(() => {
|
||||
// 1) если пришло значение извне — оно приоритетнее
|
||||
if (externalValue !== undefined) return externalValue;
|
||||
@ -76,7 +90,8 @@ export default function CoinsDisplay({
|
||||
useEffect(() => {
|
||||
const handler = () => setSettingsVersion((v) => v + 1);
|
||||
window.addEventListener('settings-updated', handler as EventListener);
|
||||
return () => window.removeEventListener('settings-updated', handler as EventListener);
|
||||
return () =>
|
||||
window.removeEventListener('settings-updated', handler as EventListener);
|
||||
}, []);
|
||||
|
||||
const isTooltipDisabledBySettings = useMemo(() => {
|
||||
@ -191,7 +206,7 @@ export default function CoinsDisplay({
|
||||
borderRadius: sizes.borderRadius,
|
||||
padding: sizes.containerPadding,
|
||||
border: '1px solid rgba(255, 255, 255, 0.1)',
|
||||
cursor: tooltipEnabled ? 'help' : 'default',
|
||||
cursor: onClick ? 'pointer' : tooltipEnabled ? 'help' : 'default',
|
||||
|
||||
// можно оставить лёгкий намёк на загрузку, но без "пульса" текста
|
||||
opacity: isLoading ? 0.85 : 1,
|
||||
@ -199,7 +214,7 @@ export default function CoinsDisplay({
|
||||
|
||||
...sx,
|
||||
}}
|
||||
onClick={username ? handleRefresh : undefined}
|
||||
onClick={handleClick}
|
||||
title={username ? 'Нажмите для обновления' : undefined}
|
||||
>
|
||||
{showIcon && (
|
||||
|
||||
Reference in New Issue
Block a user