mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-28 17:43:47 +00:00
feat: add multi-channel subscription blocking UI and admin management
- Channel subscription blocking screen with per-channel status display - Safe URL handling with protocol validation (no open redirect) - Race-condition-safe subscription check with useRef guard - Admin channel management page with create, toggle, delete - Error handlers on all admin mutations with haptic feedback - Proper type guard for channel subscription error detection - Accessibility: aria-labels on icon-only buttons - Localization: en, ru, zh, fa translations
This commit is contained in:
@@ -133,6 +133,12 @@ export interface ChannelSubscriptionError {
|
||||
code: 'channel_subscription_required';
|
||||
message: string;
|
||||
channel_link?: string;
|
||||
channels?: Array<{
|
||||
channel_id: string;
|
||||
channel_link?: string;
|
||||
title?: string;
|
||||
is_subscribed: boolean;
|
||||
}>;
|
||||
}
|
||||
|
||||
export interface BlacklistedError {
|
||||
@@ -189,6 +195,7 @@ apiClient.interceptors.response.use(
|
||||
useBlockingStore.getState().setChannelSubscription({
|
||||
message: detail.message,
|
||||
channel_link: detail.channel_link,
|
||||
channels: detail.channels,
|
||||
});
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user