generated from nhcarrigan/template
fix: critical permission modal and config issues #127
+18
-21
@@ -92,6 +92,14 @@ function createConfigStore() {
|
|||||||
const isSidebarOpen = writable<boolean>(false);
|
const isSidebarOpen = writable<boolean>(false);
|
||||||
const saveError = writable<string | null>(null);
|
const saveError = writable<string | null>(null);
|
||||||
|
|
||||||
|
// Internal function to get current config synchronously
|
||||||
|
function getCurrentConfig(): HikariConfig {
|
||||||
|
let currentConfig: HikariConfig = defaultConfig;
|
||||||
|
const unsubscribe = config.subscribe((c) => (currentConfig = c));
|
||||||
|
unsubscribe();
|
||||||
|
return currentConfig;
|
||||||
|
}
|
||||||
|
|
||||||
async function loadConfig() {
|
async function loadConfig() {
|
||||||
isLoading.set(true);
|
isLoading.set(true);
|
||||||
try {
|
try {
|
||||||
@@ -119,8 +127,7 @@ function createConfigStore() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function updateConfig(updates: Partial<HikariConfig>) {
|
async function updateConfig(updates: Partial<HikariConfig>) {
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
const newConfig = { ...currentConfig, ...updates };
|
const newConfig = { ...currentConfig, ...updates };
|
||||||
await saveConfig(newConfig);
|
await saveConfig(newConfig);
|
||||||
}
|
}
|
||||||
@@ -145,15 +152,13 @@ function createConfigStore() {
|
|||||||
updates.custom_theme_colors = customColors;
|
updates.custom_theme_colors = customColors;
|
||||||
}
|
}
|
||||||
await updateConfig(updates);
|
await updateConfig(updates);
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
applyTheme(theme, currentConfig.custom_theme_colors);
|
applyTheme(theme, currentConfig.custom_theme_colors);
|
||||||
},
|
},
|
||||||
|
|
||||||
setCustomThemeColors: async (colors: CustomThemeColors) => {
|
setCustomThemeColors: async (colors: CustomThemeColors) => {
|
||||||
await updateConfig({ custom_theme_colors: colors });
|
await updateConfig({ custom_theme_colors: colors });
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
if (currentConfig.theme === "custom") {
|
if (currentConfig.theme === "custom") {
|
||||||
applyCustomThemeColors(colors);
|
applyCustomThemeColors(colors);
|
||||||
}
|
}
|
||||||
@@ -166,16 +171,14 @@ function createConfigStore() {
|
|||||||
},
|
},
|
||||||
|
|
||||||
increaseFontSize: async () => {
|
increaseFontSize: async () => {
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
const newSize = Math.min(MAX_FONT_SIZE, currentConfig.font_size + 2);
|
const newSize = Math.min(MAX_FONT_SIZE, currentConfig.font_size + 2);
|
||||||
await updateConfig({ font_size: newSize });
|
await updateConfig({ font_size: newSize });
|
||||||
applyFontSize(newSize);
|
applyFontSize(newSize);
|
||||||
},
|
},
|
||||||
|
|
||||||
decreaseFontSize: async () => {
|
decreaseFontSize: async () => {
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
const newSize = Math.max(MIN_FONT_SIZE, currentConfig.font_size - 2);
|
const newSize = Math.max(MIN_FONT_SIZE, currentConfig.font_size - 2);
|
||||||
await updateConfig({ font_size: newSize });
|
await updateConfig({ font_size: newSize });
|
||||||
applyFontSize(newSize);
|
applyFontSize(newSize);
|
||||||
@@ -187,8 +190,7 @@ function createConfigStore() {
|
|||||||
},
|
},
|
||||||
|
|
||||||
addAutoGrantedTool: async (tool: string) => {
|
addAutoGrantedTool: async (tool: string) => {
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
if (!currentConfig.auto_granted_tools.includes(tool)) {
|
if (!currentConfig.auto_granted_tools.includes(tool)) {
|
||||||
const newTools = [...currentConfig.auto_granted_tools, tool];
|
const newTools = [...currentConfig.auto_granted_tools, tool];
|
||||||
await updateConfig({ auto_granted_tools: newTools });
|
await updateConfig({ auto_granted_tools: newTools });
|
||||||
@@ -196,27 +198,22 @@ function createConfigStore() {
|
|||||||
},
|
},
|
||||||
|
|
||||||
removeAutoGrantedTool: async (tool: string) => {
|
removeAutoGrantedTool: async (tool: string) => {
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
const newTools = currentConfig.auto_granted_tools.filter((t) => t !== tool);
|
const newTools = currentConfig.auto_granted_tools.filter((t) => t !== tool);
|
||||||
await updateConfig({ auto_granted_tools: newTools });
|
await updateConfig({ auto_granted_tools: newTools });
|
||||||
},
|
},
|
||||||
|
|
||||||
getConfig: (): HikariConfig => {
|
getConfig: (): HikariConfig => {
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
return getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
return currentConfig;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
toggleStreamerMode: async () => {
|
toggleStreamerMode: async () => {
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
await updateConfig({ streamer_mode: !currentConfig.streamer_mode });
|
await updateConfig({ streamer_mode: !currentConfig.streamer_mode });
|
||||||
},
|
},
|
||||||
|
|
||||||
toggleCompactMode: async () => {
|
toggleCompactMode: async () => {
|
||||||
let currentConfig: HikariConfig = defaultConfig;
|
const currentConfig = getCurrentConfig();
|
||||||
config.subscribe((c) => (currentConfig = c))();
|
|
||||||
await updateConfig({ compact_mode: !currentConfig.compact_mode });
|
await updateConfig({ compact_mode: !currentConfig.compact_mode });
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user