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