File: packages/gui/src/App.tsx:510
Severity: Medium
Description:
activateProvider().then(onRefresh) chains but isn't awaited in onClick; if user rapidly clicks multiple providers, onRefresh fires before activations settle.
Code:
<Button onClick={() => client?.activateProvider(provider.id).then(onRefresh)}>激活</Button>
Failure Scenario:
User clicks Provider A → clicks Provider B immediately → both activations fire → onRefresh runs before backend processes them → UI shows wrong active provider.
Suggested Fix:
Disable button during activation or use async onClick handler.
File: packages/gui/src/App.tsx:510
Severity: Medium
Description:
activateProvider().then(onRefresh) chains but isn't awaited in onClick; if user rapidly clicks multiple providers, onRefresh fires before activations settle.
Code:
Failure Scenario:
User clicks Provider A → clicks Provider B immediately → both activations fire → onRefresh runs before backend processes them → UI shows wrong active provider.
Suggested Fix:
Disable button during activation or use async onClick handler.