refactor phase 6
This commit is contained in:
@@ -19,7 +19,8 @@ import {
|
||||
SeedKeyword,
|
||||
fetchAccountSetting,
|
||||
createAccountSetting,
|
||||
updateAccountSetting
|
||||
updateAccountSetting,
|
||||
AccountSettingsError
|
||||
} from '../../services/api';
|
||||
import { Card } from '../../components/ui/card';
|
||||
import Badge from '../../components/ui/badge/Badge';
|
||||
@@ -53,6 +54,15 @@ const formatVolume = (volume: number): string => {
|
||||
return volume.toString();
|
||||
};
|
||||
|
||||
const getAccountSettingsPreferenceMessage = (error: AccountSettingsError): string => {
|
||||
switch (error.type) {
|
||||
case 'ACCOUNT_SETTINGS_VALIDATION_ERROR':
|
||||
return error.message || 'The saved preferences could not be loaded because the data is invalid.';
|
||||
default:
|
||||
return error.message || 'Unable to load your saved preferences right now.';
|
||||
}
|
||||
};
|
||||
|
||||
export default function IndustriesSectorsKeywords() {
|
||||
const toast = useToast();
|
||||
const { pageSize } = usePageSizeStore();
|
||||
@@ -98,9 +108,18 @@ export default function IndustriesSectorsKeywords() {
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
// If preferences don't exist yet, that's fine
|
||||
console.log('No user preferences found');
|
||||
} catch (error: any) {
|
||||
if (error instanceof AccountSettingsError) {
|
||||
if (error.type === 'ACCOUNT_SETTINGS_NOT_FOUND') {
|
||||
console.debug('No saved user preferences yet.');
|
||||
return;
|
||||
}
|
||||
console.warn('Failed to load user preferences:', error);
|
||||
toast.error(getAccountSettingsPreferenceMessage(error));
|
||||
return;
|
||||
}
|
||||
console.warn('Failed to load user preferences:', error);
|
||||
toast.error('Unable to load your saved preferences right now.');
|
||||
}
|
||||
};
|
||||
|
||||
@@ -266,8 +285,7 @@ export default function IndustriesSectorsKeywords() {
|
||||
is_active: true,
|
||||
});
|
||||
} catch (error: any) {
|
||||
// If setting doesn't exist, create it
|
||||
if (error.status === 404) {
|
||||
if (error instanceof AccountSettingsError && error.type === 'ACCOUNT_SETTINGS_NOT_FOUND') {
|
||||
await createAccountSetting({
|
||||
key: 'user_preferences',
|
||||
config: preferences,
|
||||
@@ -280,7 +298,11 @@ export default function IndustriesSectorsKeywords() {
|
||||
|
||||
toast.success('Preferences saved successfully! These will be used when creating new sites.');
|
||||
} catch (error: any) {
|
||||
toast.error(`Failed to save preferences: ${error.message}`);
|
||||
if (error instanceof AccountSettingsError) {
|
||||
toast.error(getAccountSettingsPreferenceMessage(error));
|
||||
} else {
|
||||
toast.error(`Failed to save preferences: ${error.message}`);
|
||||
}
|
||||
} finally {
|
||||
setSaving(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user