Skip to content

Commit 1c72d94

Browse files
committed
Remove obsolete subscription components and migrate to allowed users system
- Remove SubscriptionTiersManager and SubscriptionSection components - Clean up relay settings layouts to remove subscription props - Update allowed users API to handle free mode tier selection - Improve NPubManagement component with better error handling - Enhance TiersConfig with radio button selection for free mode - Clean up relay settings types and hooks
1 parent 1dd1680 commit 1c72d94

13 files changed

Lines changed: 96 additions & 746 deletions

File tree

src/api/allowedUsers.api.ts

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import {
55
AllowedUsersApiResponse,
66
AllowedUsersNpubsResponse,
77
BulkImportRequest,
8-
AllowedUsersNpub
8+
AllowedUsersNpub,
9+
DEFAULT_TIERS
910
} from '@app/types/allowedUsers.types';
1011

1112
// Settings Management
@@ -24,12 +25,23 @@ export const getAllowedUsersSettings = async (): Promise<AllowedUsersSettings> =
2425
const data: AllowedUsersApiResponse = JSON.parse(text);
2526

2627
// Transform tiers from backend format to frontend format
28+
let transformedTiers = data.allowed_users.tiers.map(tier => ({
29+
data_limit: (tier as any).datalimit || tier.data_limit || '',
30+
price: tier.price
31+
}));
32+
33+
// For free mode, reconstruct full UI options with active tier marked
34+
if (data.allowed_users.mode === 'free' && transformedTiers.length === 1) {
35+
const activeTierDataLimit = transformedTiers[0].data_limit;
36+
transformedTiers = DEFAULT_TIERS.free.map(defaultTier => ({
37+
...defaultTier,
38+
active: defaultTier.data_limit === activeTierDataLimit
39+
}));
40+
}
41+
2742
const transformedSettings = {
2843
...data.allowed_users,
29-
tiers: data.allowed_users.tiers.map(tier => ({
30-
data_limit: (tier as any).datalimit || tier.data_limit || '',
31-
price: tier.price
32-
}))
44+
tiers: transformedTiers
3345
};
3446

3547
return transformedSettings;
@@ -41,6 +53,11 @@ export const getAllowedUsersSettings = async (): Promise<AllowedUsersSettings> =
4153
export const updateAllowedUsersSettings = async (settings: AllowedUsersSettings): Promise<{ success: boolean, message: string }> => {
4254
const token = readToken();
4355

56+
// Filter tiers based on mode - for free mode, only send active tier
57+
const tiersToSend = settings.mode === 'free'
58+
? settings.tiers.filter(tier => tier.active)
59+
: settings.tiers;
60+
4461
// Transform to nested format as expected by backend
4562
const nestedSettings = {
4663
"allowed_users": {
@@ -53,7 +70,7 @@ export const updateAllowedUsersSettings = async (settings: AllowedUsersSettings)
5370
"enabled": settings.write_access.enabled,
5471
"scope": settings.write_access.scope
5572
},
56-
"tiers": settings.tiers.map(tier => ({
73+
"tiers": tiersToSend.map(tier => ({
5774
"datalimit": tier.data_limit || "1 GB per month", // Backend expects 'datalimit' not 'data_limit', fallback for empty values
5875
"price": tier.price || "0"
5976
}))

0 commit comments

Comments
 (0)