From 16917eb07084add68c73dd94f7a008f8dc354e57 Mon Sep 17 00:00:00 2001 From: Joseph Izang Date: Thu, 23 May 2024 09:32:32 +0100 Subject: [PATCH] tracking events --- .../remix-ide/src/app/components/status-bar.tsx | 6 ++---- apps/remix-ide/src/app/tabs/settings-tab.tsx | 2 +- apps/remix-ide/src/remixAppManager.js | 2 +- .../statusbar/src/lib/components/aiStatus.tsx | 17 ++++++++++------- .../src/lib/remixui-statusbar-panel.tsx | 3 +-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/apps/remix-ide/src/app/components/status-bar.tsx b/apps/remix-ide/src/app/components/status-bar.tsx index 74f53bdc5c..3bee0a8b8f 100644 --- a/apps/remix-ide/src/app/components/status-bar.tsx +++ b/apps/remix-ide/src/app/components/status-bar.tsx @@ -12,7 +12,7 @@ const statusBarProfile: PluginProfile = { name: 'statusBar', displayName: 'Status Bar', description: 'Remix IDE status bar panel', - methods: [], + methods: ['isAIActive'], version: packageJson.version, } @@ -49,8 +49,7 @@ export class StatusBar extends Plugin implements StatusBarInterface { this.renderComponent() } - async isAIActive() { - const aiActive = await this.call('settings', 'get', 'settings/copilot/suggest/activate') + async isAIActive(aiActive: any) { this.isAiActive = aiActive this.renderComponent() return aiActive @@ -59,7 +58,6 @@ export class StatusBar extends Plugin implements StatusBarInterface { onActivation(): void { this.on('filePanel', 'workspaceInitializationCompleted', async () => { const isGit = await this.call('fileManager', 'isGitRepo') - this.isAIActive() if (!isGit) return const workspaceName = localStorage.getItem('currentWorkspace') workspaceName && workspaceName.length > 0 ? this.currentWorkspaceName = workspaceName : this.currentWorkspaceName = '' diff --git a/apps/remix-ide/src/app/tabs/settings-tab.tsx b/apps/remix-ide/src/app/tabs/settings-tab.tsx index 98c40919c4..dd2b67dc2b 100644 --- a/apps/remix-ide/src/app/tabs/settings-tab.tsx +++ b/apps/remix-ide/src/app/tabs/settings-tab.tsx @@ -97,7 +97,7 @@ module.exports = class SettingsTab extends ViewPlugin { updateCopilotChoice(isChecked) { this.config.set('settings/copilot/suggest/activate', isChecked) this.useCopilot = isChecked - this.emit('copilotChoiceChanged', isChecked) + this.call('statusbar', 'isAIActive', isChecked) this.dispatch({ ...this }) diff --git a/apps/remix-ide/src/remixAppManager.js b/apps/remix-ide/src/remixAppManager.js index 3ea4a82e65..07958b4491 100644 --- a/apps/remix-ide/src/remixAppManager.js +++ b/apps/remix-ide/src/remixAppManager.js @@ -31,6 +31,7 @@ let requiredModules = [ // services + layout views + system views 'menuicons', 'filePanel', 'terminal', + 'statusBar', 'settings', 'pluginManager', 'tabs', @@ -70,7 +71,6 @@ let requiredModules = [ // services + layout views + system views 'compilationDetails', 'vyperCompilationDetails', 'contractflattener', - 'statusBar', 'solidity-script', 'solcoder', 'home', diff --git a/libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx b/libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx index 34d0c24004..b54fdfa5bc 100644 --- a/libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx +++ b/libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx @@ -5,6 +5,7 @@ import React, { useEffect, useState } from 'react' interface AIStatusProps { plugin: StatusBar isAiActive: boolean + setIsAiActive: (isAiActive: boolean) => void aiActive: () => Promise } @@ -12,24 +13,26 @@ export default function AIStatus(props: AIStatusProps) { const [copilotActive, setCopilotActive] = useState(false) useEffect(() => { const run = async () => { - props.plugin.on('settings', 'copilotChoiceChanged', (isAiActive) => { - console.log('copilot active', isAiActive) - setCopilotActive(isAiActive) + props.plugin.on('fileManager', 'currentFileChanged', async (isAiActive) => { + const aiActivate = await props.plugin.call('settings', 'get', 'settings/copilot/suggest/activate') + console.log('copilot active', aiActivate) + setCopilotActive(aiActivate) }) } run() - }, [copilotActive, props.plugin.isAiActive]) + }, [props.plugin.isAiActive, props.isAiActive]) useEffect(() => { const run = async () => { - props.plugin.on('filePanel', 'workspaceInitializationCompleted', async () => { - const active = await props.plugin.isAIActive() + props.plugin.on('filePanel', 'workspaceInitializationCompleted', async (work) => { + const aiActivate = await props.plugin.call('settings', 'get', 'settings/copilot/suggest/activate') + const active = await props.plugin.isAIActive(aiActivate) setCopilotActive(active) }) console.log('copilot active', copilotActive) } run() - }, [copilotActive, props.plugin.isAiActive]) + }, [props.plugin.isAiActive]) return (
diff --git a/libs/remix-ui/statusbar/src/lib/remixui-statusbar-panel.tsx b/libs/remix-ui/statusbar/src/lib/remixui-statusbar-panel.tsx index 41e1043931..1db325a1de 100644 --- a/libs/remix-ui/statusbar/src/lib/remixui-statusbar-panel.tsx +++ b/libs/remix-ui/statusbar/src/lib/remixui-statusbar-panel.tsx @@ -56,7 +56,6 @@ export function RemixUIStatusBar({ statusBarPlugin }: RemixUIStatusBarProps) { const lightAiUp = async () => { const aiActive = await statusBarPlugin.call('settings', 'get', 'settings/copilot/suggest/activate') - console.log('ai', aiActive) if (!aiActive) return setIsAiActive(aiActive) return aiActive @@ -76,7 +75,7 @@ export function RemixUIStatusBar({ statusBarPlugin }: RemixUIStatusBarProps) {
- +