diff --git a/frontend/src/components/settings/SettingsPage.jsx b/frontend/src/components/settings/SettingsPage.jsx index 2ed1241..b187285 100644 --- a/frontend/src/components/settings/SettingsPage.jsx +++ b/frontend/src/components/settings/SettingsPage.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState, useEffect, useRef } from 'react'; import { getSettings, getGitStatus, @@ -27,6 +27,8 @@ const SettingsPage = () => { const [statusLoading, setStatusLoading] = useState(true); const [statusLoadingMessage, setStatusLoadingMessage] = useState(''); const [noChangesMessage, setNoChangesMessage] = useState(''); + const [activeTab, setActiveTab] = useState('git'); // New state for tab navigation + const tabsRef = useRef({}); // Ref for tabs useEffect(() => { fetchSettings(); @@ -80,137 +82,91 @@ const SettingsPage = () => { } }; - const handleStageSelectedChanges = async (selectedChanges) => { - setLoadingAction('stage_selected'); - try { - const response = await addFiles(selectedChanges); - if (response.success) { - await fetchGitStatus(); - Alert.success(response.message); - } else { - Alert.error(response.error); - } - } catch (error) { - Alert.error('An unexpected error occurred while staging changes.'); - console.error('Error staging changes:', error); - } finally { - setLoadingAction(''); - } - }; - - const handleCommitSelectedChanges = async (selectedChanges, commitMessage) => { - setLoadingAction('commit_selected'); - try { - const response = await pushFiles(selectedChanges, commitMessage); - if (response.success) { - await fetchGitStatus(); - Alert.success(response.message); - } else { - Alert.error(response.error); - } - } catch (error) { - Alert.error('An unexpected error occurred while committing changes.'); - console.error('Error committing changes:', error); - } finally { - setLoadingAction(''); - } - }; - - const handleRevertSelectedChanges = async (selectedChanges) => { - setLoadingAction('revert_selected'); - try { - const response = await Promise.all(selectedChanges.map(filePath => revertFile(filePath))); - const allSuccessful = response.every(res => res.success); - if (allSuccessful) { - await fetchGitStatus(); - Alert.success('Selected changes have been reverted successfully.'); - } else { - Alert.error('Some changes could not be reverted. Please try again.'); - } - } catch (error) { - Alert.error('An unexpected error occurred while reverting changes.'); - console.error('Error reverting changes:', error); - } finally { - setLoadingAction(''); - } - }; - - const handlePullSelectedChanges = async (selectedChanges) => { - setLoadingAction('pull_changes'); - try { - const response = await pullBranch(changes.branch, selectedChanges); - if (response.success) { - await fetchGitStatus(); - Alert.success(response.message); - } else { - Alert.error(response.error); - } - } catch (error) { - Alert.error('An unexpected error occurred while pulling changes.'); - console.error('Error pulling changes:', error); - } finally { - setLoadingAction(''); - } + const handleTabChange = (tab) => { + setActiveTab(tab); }; return (