UNPKG

dmux

Version:

Tmux pane manager with AI agent integration for parallel development workflows

46 lines 1.79 kB
import { useEffect, useState } from 'react'; import fs from 'fs/promises'; export default function useProjectSettings(settingsFile) { const [projectSettings, setProjectSettings] = useState({}); useEffect(() => { const load = async () => { try { const content = await fs.readFile(settingsFile, 'utf-8'); const parsed = JSON.parse(content); // Handle both old format (direct settings) and new format (config with settings field) if (parsed.settings !== undefined || parsed.panes !== undefined) { // New config format const config = parsed; setProjectSettings(config.settings || {}); } else { // Old format or direct settings setProjectSettings(parsed); } } catch { setProjectSettings({}); } }; load(); }, [settingsFile]); const saveSettings = async (settings) => { // Read existing config to preserve other fields let config = {}; try { const content = await fs.readFile(settingsFile, 'utf-8'); const parsed = JSON.parse(content); if (parsed.panes !== undefined || parsed.settings !== undefined) { config = parsed; } } catch { } // Update settings in config config.settings = settings; config.lastUpdated = new Date().toISOString(); await fs.writeFile(settingsFile, JSON.stringify(config, null, 2)); setProjectSettings(settings); }; return { projectSettings, saveSettings }; } //# sourceMappingURL=useProjectSettings.js.map