feat(scum): rebuild plugin-owned management data
This commit is contained in:
@@ -9,7 +9,7 @@ import { EmptyState, ErrorState, LoadingState } from "../components/StateViews";
|
||||
import type { PageComponentProps } from "../contracts/page";
|
||||
import { pluginBridgeManifestContractFromResponse } from "../contracts/pluginBridge";
|
||||
import type { PluginPageWorkspaceActions } from "../contracts/pluginPageHost";
|
||||
import { createPluginBridgeHostContext } from "../utils/pluginBridgeHost";
|
||||
import { createPluginBridgeDispatcher, createPluginBridgeHostContext } from "../utils/pluginBridgeHost";
|
||||
import { loadPluginPageBundle, type PluginPageAvailability } from "../utils/pluginPageBundles";
|
||||
|
||||
type PluginPageState =
|
||||
@@ -71,7 +71,20 @@ export function PluginPageHostPage({ params, onNavigate, initialPlugin, embedded
|
||||
return {
|
||||
pluginData: {
|
||||
list: (collection, key) => platformApiClient.listPluginData(serverId, collection, key),
|
||||
put: (collection, key, value) => platformApiClient.putPluginData(serverId, collection, key, value)
|
||||
put: (collection, key, value) => platformApiClient.putPluginData(serverId, collection, key, value),
|
||||
delete: (collection, key) => platformApiClient.deletePluginData(serverId, collection, key),
|
||||
transact: (collection, mutations) => platformApiClient.transactPluginData(serverId, collection, mutations)
|
||||
},
|
||||
gameClient: {
|
||||
queue: (request) => platformApiClient.queueGameClientBridgeCommand(serverId, request),
|
||||
get: (commandId) => platformApiClient.getGameClientBridgeCommand(serverId, commandId),
|
||||
list: (filter) => platformApiClient.listGameClientBridgeCommands(serverId, filter),
|
||||
snapshots: (query) => platformApiClient.listGameClientBridgeSnapshots(serverId, query)
|
||||
},
|
||||
dispatch: (envelope, signal) => {
|
||||
const context = hostContextRef.current;
|
||||
if (!context) return Promise.resolve({ requestId: envelope.requestId, action: envelope.action, status: "error", error: { code: "host_unavailable", message: "plugin bridge host is unavailable" } });
|
||||
return createPluginBridgeDispatcher(context, platformApiClient)(envelope, signal);
|
||||
}
|
||||
};
|
||||
}, [pluginId, serverId]);
|
||||
|
||||
Reference in New Issue
Block a user