mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-22 16:51:13 -05:00
Refactor: Consolidate save buttons
This commit is contained in:
@@ -88,52 +88,39 @@ export function LocationTab() {
|
|||||||
if (!user) return;
|
if (!user) return;
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
try {
|
try {
|
||||||
const {
|
// Save profile information
|
||||||
error
|
const { error: profileError } = await supabase.from('profiles').update({
|
||||||
} = await supabase.from('profiles').update({
|
|
||||||
preferred_pronouns: data.preferred_pronouns || null,
|
preferred_pronouns: data.preferred_pronouns || null,
|
||||||
timezone: data.timezone,
|
timezone: data.timezone,
|
||||||
preferred_language: data.preferred_language,
|
preferred_language: data.preferred_language,
|
||||||
location_id: data.location_id || null,
|
location_id: data.location_id || null,
|
||||||
updated_at: new Date().toISOString()
|
updated_at: new Date().toISOString()
|
||||||
}).eq('user_id', user.id);
|
}).eq('user_id', user.id);
|
||||||
if (error) throw error;
|
|
||||||
await refreshProfile();
|
if (profileError) throw profileError;
|
||||||
toast({
|
|
||||||
title: 'Information updated',
|
// Save accessibility preferences
|
||||||
description: 'Your location and personal information has been successfully updated.'
|
const { error: accessibilityError } = await supabase.from('user_preferences').upsert([{
|
||||||
});
|
|
||||||
} catch (error: any) {
|
|
||||||
toast({
|
|
||||||
title: 'Error',
|
|
||||||
description: error.message || 'Failed to update information',
|
|
||||||
variant: 'destructive'
|
|
||||||
});
|
|
||||||
} finally {
|
|
||||||
setLoading(false);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const saveAccessibilityPreferences = async () => {
|
|
||||||
if (!user) return;
|
|
||||||
try {
|
|
||||||
const {
|
|
||||||
error
|
|
||||||
} = await supabase.from('user_preferences').upsert([{
|
|
||||||
user_id: user.id,
|
user_id: user.id,
|
||||||
accessibility_options: accessibility as any,
|
accessibility_options: accessibility as any,
|
||||||
updated_at: new Date().toISOString()
|
updated_at: new Date().toISOString()
|
||||||
}]);
|
}]);
|
||||||
if (error) throw error;
|
|
||||||
|
if (accessibilityError) throw accessibilityError;
|
||||||
|
|
||||||
|
await refreshProfile();
|
||||||
toast({
|
toast({
|
||||||
title: 'Accessibility preferences saved',
|
title: 'Settings saved',
|
||||||
description: 'Your accessibility settings have been updated.'
|
description: 'Your location, personal information, and accessibility settings have been updated.'
|
||||||
});
|
});
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
toast({
|
toast({
|
||||||
title: 'Error',
|
title: 'Error',
|
||||||
description: error.message || 'Failed to save accessibility preferences',
|
description: error.message || 'Failed to save settings',
|
||||||
variant: 'destructive'
|
variant: 'destructive'
|
||||||
});
|
});
|
||||||
|
} finally {
|
||||||
|
setLoading(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const updateAccessibility = (key: keyof AccessibilityOptions, value: any) => {
|
const updateAccessibility = (key: keyof AccessibilityOptions, value: any) => {
|
||||||
@@ -227,14 +214,7 @@ export function LocationTab() {
|
|||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex justify-end">
|
<Separator />
|
||||||
<Button type="submit" disabled={loading}>
|
|
||||||
{loading ? 'Saving...' : 'Save Information'}
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{/* Accessibility Options */}
|
{/* Accessibility Options */}
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
@@ -283,14 +263,15 @@ export function LocationTab() {
|
|||||||
</div>
|
</div>
|
||||||
<Switch checked={accessibility.reduced_motion} onCheckedChange={checked => updateAccessibility('reduced_motion', checked)} />
|
<Switch checked={accessibility.reduced_motion} onCheckedChange={checked => updateAccessibility('reduced_motion', checked)} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex justify-end">
|
|
||||||
<Button onClick={saveAccessibilityPreferences}>
|
|
||||||
Save Accessibility Settings
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div className="flex justify-end">
|
||||||
|
<Button type="submit" disabled={loading}>
|
||||||
|
{loading ? 'Saving...' : 'Save Settings'}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
</div>;
|
</div>;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user