tracking events

pull/4774/head
Joseph Izang 9 months ago
parent 23d1424e04
commit 16917eb070
  1. 6
      apps/remix-ide/src/app/components/status-bar.tsx
  2. 2
      apps/remix-ide/src/app/tabs/settings-tab.tsx
  3. 2
      apps/remix-ide/src/remixAppManager.js
  4. 17
      libs/remix-ui/statusbar/src/lib/components/aiStatus.tsx
  5. 3
      libs/remix-ui/statusbar/src/lib/remixui-statusbar-panel.tsx

@ -12,7 +12,7 @@ const statusBarProfile: PluginProfile = {
name: 'statusBar', name: 'statusBar',
displayName: 'Status Bar', displayName: 'Status Bar',
description: 'Remix IDE status bar panel', description: 'Remix IDE status bar panel',
methods: [], methods: ['isAIActive'],
version: packageJson.version, version: packageJson.version,
} }
@ -49,8 +49,7 @@ export class StatusBar extends Plugin implements StatusBarInterface {
this.renderComponent() this.renderComponent()
} }
async isAIActive() { async isAIActive(aiActive: any) {
const aiActive = await this.call('settings', 'get', 'settings/copilot/suggest/activate')
this.isAiActive = aiActive this.isAiActive = aiActive
this.renderComponent() this.renderComponent()
return aiActive return aiActive
@ -59,7 +58,6 @@ export class StatusBar extends Plugin implements StatusBarInterface {
onActivation(): void { onActivation(): void {
this.on('filePanel', 'workspaceInitializationCompleted', async () => { this.on('filePanel', 'workspaceInitializationCompleted', async () => {
const isGit = await this.call('fileManager', 'isGitRepo') const isGit = await this.call('fileManager', 'isGitRepo')
this.isAIActive()
if (!isGit) return if (!isGit) return
const workspaceName = localStorage.getItem('currentWorkspace') const workspaceName = localStorage.getItem('currentWorkspace')
workspaceName && workspaceName.length > 0 ? this.currentWorkspaceName = workspaceName : this.currentWorkspaceName = '' workspaceName && workspaceName.length > 0 ? this.currentWorkspaceName = workspaceName : this.currentWorkspaceName = ''

@ -97,7 +97,7 @@ module.exports = class SettingsTab extends ViewPlugin {
updateCopilotChoice(isChecked) { updateCopilotChoice(isChecked) {
this.config.set('settings/copilot/suggest/activate', isChecked) this.config.set('settings/copilot/suggest/activate', isChecked)
this.useCopilot = isChecked this.useCopilot = isChecked
this.emit('copilotChoiceChanged', isChecked) this.call('statusbar', 'isAIActive', isChecked)
this.dispatch({ this.dispatch({
...this ...this
}) })

@ -31,6 +31,7 @@ let requiredModules = [ // services + layout views + system views
'menuicons', 'menuicons',
'filePanel', 'filePanel',
'terminal', 'terminal',
'statusBar',
'settings', 'settings',
'pluginManager', 'pluginManager',
'tabs', 'tabs',
@ -70,7 +71,6 @@ let requiredModules = [ // services + layout views + system views
'compilationDetails', 'compilationDetails',
'vyperCompilationDetails', 'vyperCompilationDetails',
'contractflattener', 'contractflattener',
'statusBar',
'solidity-script', 'solidity-script',
'solcoder', 'solcoder',
'home', 'home',

@ -5,6 +5,7 @@ import React, { useEffect, useState } from 'react'
interface AIStatusProps { interface AIStatusProps {
plugin: StatusBar plugin: StatusBar
isAiActive: boolean isAiActive: boolean
setIsAiActive: (isAiActive: boolean) => void
aiActive: () => Promise<any> aiActive: () => Promise<any>
} }
@ -12,24 +13,26 @@ export default function AIStatus(props: AIStatusProps) {
const [copilotActive, setCopilotActive] = useState(false) const [copilotActive, setCopilotActive] = useState(false)
useEffect(() => { useEffect(() => {
const run = async () => { const run = async () => {
props.plugin.on('settings', 'copilotChoiceChanged', (isAiActive) => { props.plugin.on('fileManager', 'currentFileChanged', async (isAiActive) => {
console.log('copilot active', isAiActive) const aiActivate = await props.plugin.call('settings', 'get', 'settings/copilot/suggest/activate')
setCopilotActive(isAiActive) console.log('copilot active', aiActivate)
setCopilotActive(aiActivate)
}) })
} }
run() run()
}, [copilotActive, props.plugin.isAiActive]) }, [props.plugin.isAiActive, props.isAiActive])
useEffect(() => { useEffect(() => {
const run = async () => { const run = async () => {
props.plugin.on('filePanel', 'workspaceInitializationCompleted', async () => { props.plugin.on('filePanel', 'workspaceInitializationCompleted', async (work) => {
const active = await props.plugin.isAIActive() const aiActivate = await props.plugin.call('settings', 'get', 'settings/copilot/suggest/activate')
const active = await props.plugin.isAIActive(aiActivate)
setCopilotActive(active) setCopilotActive(active)
}) })
console.log('copilot active', copilotActive) console.log('copilot active', copilotActive)
} }
run() run()
}, [copilotActive, props.plugin.isAiActive]) }, [props.plugin.isAiActive])
return ( return (
<div className="d-flex flex-row p-1 text-white justify-content-center align-items-center"> <div className="d-flex flex-row p-1 text-white justify-content-center align-items-center">
<span className={copilotActive === false ? "fa-regular fa-microchip-ai ml-1 text-danger" : "fa-regular fa-microchip-ai ml-1"}></span> <span className={copilotActive === false ? "fa-regular fa-microchip-ai ml-1 text-danger" : "fa-regular fa-microchip-ai ml-1"}></span>

@ -56,7 +56,6 @@ export function RemixUIStatusBar({ statusBarPlugin }: RemixUIStatusBarProps) {
const lightAiUp = async () => { const lightAiUp = async () => {
const aiActive = await statusBarPlugin.call('settings', 'get', 'settings/copilot/suggest/activate') const aiActive = await statusBarPlugin.call('settings', 'get', 'settings/copilot/suggest/activate')
console.log('ai', aiActive)
if (!aiActive) return if (!aiActive) return
setIsAiActive(aiActive) setIsAiActive(aiActive)
return aiActive return aiActive
@ -76,7 +75,7 @@ export function RemixUIStatusBar({ statusBarPlugin }: RemixUIStatusBarProps) {
<div className="remixui_statusbar"></div> <div className="remixui_statusbar"></div>
<div className="remixui_statusbar d-flex flex-row"> <div className="remixui_statusbar d-flex flex-row">
<ScamAlertStatus refs={refs} getReferenceProps={getReferenceProps} /> <ScamAlertStatus refs={refs} getReferenceProps={getReferenceProps} />
<AIStatus plugin={statusBarPlugin} aiActive={lightAiUp} isAiActive={isAiActive} /> <AIStatus plugin={statusBarPlugin} aiActive={lightAiUp} isAiActive={isAiActive} setIsAiActive={setIsAiActive} />
</div> </div>
</div> </div>
</> </>

Loading…
Cancel
Save