Fix channel configured status (#44)
This commit is contained in:
committed by
GitHub
Unverified
parent
92c1b68a54
commit
01f4d4800e
@@ -271,6 +271,22 @@ export function deleteChannelConfig(channelType: string): void {
|
|||||||
delete currentConfig.channels[channelType];
|
delete currentConfig.channels[channelType];
|
||||||
writeOpenClawConfig(currentConfig);
|
writeOpenClawConfig(currentConfig);
|
||||||
console.log(`Deleted channel config for ${channelType}`);
|
console.log(`Deleted channel config for ${channelType}`);
|
||||||
|
} else if (PLUGIN_CHANNELS.includes(channelType)) {
|
||||||
|
// Handle plugin channels (like whatsapp)
|
||||||
|
if (currentConfig.plugins?.entries?.[channelType]) {
|
||||||
|
delete currentConfig.plugins.entries[channelType];
|
||||||
|
|
||||||
|
// Cleanup empty objects
|
||||||
|
if (Object.keys(currentConfig.plugins.entries).length === 0) {
|
||||||
|
delete currentConfig.plugins.entries;
|
||||||
|
}
|
||||||
|
if (currentConfig.plugins && Object.keys(currentConfig.plugins).length === 0) {
|
||||||
|
delete currentConfig.plugins;
|
||||||
|
}
|
||||||
|
|
||||||
|
writeOpenClawConfig(currentConfig);
|
||||||
|
console.log(`Deleted plugin channel config for ${channelType}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Special handling for WhatsApp credentials
|
// Special handling for WhatsApp credentials
|
||||||
|
|||||||
@@ -59,17 +59,6 @@ export function Channels() {
|
|||||||
fetchChannels();
|
fetchChannels();
|
||||||
}, [fetchChannels]);
|
}, [fetchChannels]);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const unsubscribe = window.electron.ipcRenderer.on('gateway:channel-status', () => {
|
|
||||||
fetchChannels();
|
|
||||||
});
|
|
||||||
return () => {
|
|
||||||
if (typeof unsubscribe === 'function') {
|
|
||||||
unsubscribe();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}, [fetchChannels]);
|
|
||||||
|
|
||||||
// Fetch configured channel types from config file
|
// Fetch configured channel types from config file
|
||||||
const fetchConfiguredTypes = useCallback(async () => {
|
const fetchConfiguredTypes = useCallback(async () => {
|
||||||
try {
|
try {
|
||||||
@@ -90,6 +79,18 @@ export function Channels() {
|
|||||||
void fetchConfiguredTypes();
|
void fetchConfiguredTypes();
|
||||||
}, [fetchConfiguredTypes]);
|
}, [fetchConfiguredTypes]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const unsubscribe = window.electron.ipcRenderer.on('gateway:channel-status', () => {
|
||||||
|
fetchChannels();
|
||||||
|
fetchConfiguredTypes();
|
||||||
|
});
|
||||||
|
return () => {
|
||||||
|
if (typeof unsubscribe === 'function') {
|
||||||
|
unsubscribe();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}, [fetchChannels, fetchConfiguredTypes]);
|
||||||
|
|
||||||
// Get channel types to display
|
// Get channel types to display
|
||||||
const displayedChannelTypes = showAllChannels ? getAllChannels() : getPrimaryChannels();
|
const displayedChannelTypes = showAllChannels ? getAllChannels() : getPrimaryChannels();
|
||||||
|
|
||||||
@@ -205,7 +206,9 @@ export function Channels() {
|
|||||||
channel={channel}
|
channel={channel}
|
||||||
onDelete={() => {
|
onDelete={() => {
|
||||||
if (confirm('Are you sure you want to delete this channel?')) {
|
if (confirm('Are you sure you want to delete this channel?')) {
|
||||||
deleteChannel(channel.id);
|
deleteChannel(channel.id).then(() => {
|
||||||
|
fetchConfiguredTypes();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user