Skip to content

Commit f7da506

Browse files
feat: remove preview dimension callback from the queue list
1 parent f46e28a commit f7da506

File tree

10 files changed

+69
-2
lines changed

10 files changed

+69
-2
lines changed

packages/field-plugin/src/createFieldPlugin/createPluginActions/callbackQueue.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type {
66
LoadedMessage,
77
OnMessage,
88
StateChangedMessage,
9-
PreviewDimensionChangeMessage,
9+
PreviewDimensionResponseMessage,
1010
} from '../../messaging'
1111
import { getRandomUid } from '../../utils'
1212

@@ -19,7 +19,10 @@ type CallbackMap = {
1919
stateChanged: Record<CallbackId, OnMessage<StateChangedMessage>>
2020
loaded: Record<CallbackId, OnMessage<LoadedMessage>>
2121
promptAI: Record<CallbackId, OnMessage<PromptAIResponseMessage>>
22-
previewDimension: Record<CallbackId, OnMessage<PreviewDimensionChangeMessage>>
22+
previewDimension: Record<
23+
CallbackId,
24+
OnMessage<PreviewDimensionResponseMessage>
25+
>
2326
}
2427
type CallbackType = keyof CallbackMap
2528

packages/field-plugin/src/createFieldPlugin/createPluginActions/createPluginActions.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
type OnUnknownPluginMessage,
2121
type OnPromptAIMessage,
2222
type PromptAIPayload,
23+
type OnPreviewDimensionMessage,
2324
} from '../../messaging'
2425
import { FieldPluginActions, Initialize } from '../FieldPluginActions'
2526
import { pluginStateFromStateChangeMessage } from './partialPluginStateFromStateChangeMessage'
@@ -82,6 +83,10 @@ export const createPluginActions: CreatePluginActions = ({
8283
popCallback('promptAI', data.callbackId)?.(data)
8384
}
8485

86+
const onPreviewDimension: OnPreviewDimensionMessage = (data) => {
87+
popCallback('previewDimension', data.callbackId)
88+
}
89+
8590
const onUnknownMessage: OnUnknownPluginMessage = (data) => {
8691
// TODO remove side-effect, making functions in this file pure.
8792
// perhaps only show this message in development mode?
@@ -101,6 +106,7 @@ export const createPluginActions: CreatePluginActions = ({
101106
onUserContextRequest,
102107
onAssetSelect,
103108
onPromptAI,
109+
onPreviewDimension,
104110
onUnknownMessage,
105111
}
106112

packages/field-plugin/src/createFieldPlugin/createPluginActions/createPluginMessageListener/createPluginMessageListener.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import type {
66
OnPromptAIMessage,
77
OnStateChangeMessage,
88
OnUnknownPluginMessage,
9+
OnPreviewDimensionMessage,
910
} from '../../../messaging'
1011
import { handlePluginMessage } from './handlePluginMessage'
1112

@@ -16,6 +17,7 @@ export type PluginMessageCallbacks = {
1617
onUserContextRequest: OnUserContextRequestMessage
1718
onAssetSelect: OnAssetSelectMessage
1819
onPromptAI: OnPromptAIMessage
20+
onPreviewDimension: OnPreviewDimensionMessage
1921
onUnknownMessage: OnUnknownPluginMessage
2022
}
2123

packages/field-plugin/src/createFieldPlugin/createPluginActions/createPluginMessageListener/handlePluginMessage.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const mockCallbacks = (): PluginMessageCallbacks => ({
1818
onAssetSelect: vi.fn(),
1919
onUnknownMessage: vi.fn(),
2020
onLoaded: vi.fn(),
21+
onPreviewDimension: vi.fn(),
2122
onPromptAI: vi.fn(),
2223
})
2324

packages/field-plugin/src/createFieldPlugin/createPluginActions/createPluginMessageListener/handlePluginMessage.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
} from '../../../messaging'
99
import { PluginMessageCallbacks } from './createPluginMessageListener'
1010
import { isStateMessage } from '../../../messaging/pluginMessage/containerToPluginMessage/StateChangedMessage'
11+
import { isPreviewDimensionResponse } from '../../../messaging/pluginMessage/containerToPluginMessage//PreviewDimensionResponseMessage'
1112

1213
export const handlePluginMessage = (
1314
data: unknown,
@@ -38,6 +39,8 @@ export const handlePluginMessage = (
3839
callbacks.onAssetSelect(data)
3940
} else if (isPromptAIMessage(data)) {
4041
callbacks.onPromptAI(data)
42+
} else if (isPreviewDimensionResponse(data)) {
43+
callbacks.onPreviewDimension(data)
4144
} else {
4245
callbacks.onUnknownMessage(data)
4346
}

packages/field-plugin/src/messaging/pluginMessage/containerToPluginMessage/ContainerToPlugin.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { UserContextRequestMessage } from './UserContextRequestMessage'
55
import { MessageToPlugin } from './MessageToPlugin'
66
import { StateChangedMessage } from './StateChangedMessage'
77
import { PromptAIResponseMessage } from './PromptAIResponseMessage'
8+
import { PreviewDimensionResponseMessage } from './PreviewDimensionResponseMessage'
89

910
/**
1011
* The plugin container's sends it's state to the plugin
@@ -14,6 +15,9 @@ export type OnStateChangeMessage = (message: StateChangedMessage) => void
1415
export type OnLoadedMessage = (message: LoadedMessage) => void
1516
export type OnAssetSelectMessage = (message: AssetSelectedMessage) => void
1617
export type OnPromptAIMessage = (message: PromptAIResponseMessage) => void
18+
export type OnPreviewDimensionMessage = (
19+
message: PreviewDimensionResponseMessage,
20+
) => void
1721
export type OnContextRequestMessage = (message: ContextRequestMessage) => void
1822
export type OnUserContextRequestMessage = (
1923
message: UserContextRequestMessage,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import {
2+
type PreviewDimensionResponseMessage,
3+
isPreviewDimensionResponse,
4+
} from './PreviewDimensionResponseMessage'
5+
6+
const stub: PreviewDimensionResponseMessage = {
7+
action: 'preview-dimension',
8+
uid: '-preview',
9+
callbackId: 'test-callback-id',
10+
}
11+
12+
describe('PreviewDimensionResponseMessage', function () {
13+
it('is a message to plugin', () => {
14+
expect(isPreviewDimensionResponse(stub)).toEqual(true)
15+
})
16+
describe('the action property', () => {
17+
it('equals "preview-dimension"', () => {
18+
expect(
19+
isPreviewDimensionResponse({
20+
...stub,
21+
action: 'preview-dimension',
22+
}),
23+
).toEqual(true)
24+
expect(
25+
isPreviewDimensionResponse({
26+
...stub,
27+
action: 'something-else',
28+
}),
29+
).toEqual(false)
30+
})
31+
})
32+
})
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { isMessageToPlugin, type MessageToPlugin } from './MessageToPlugin'
2+
3+
export type PreviewDimensionResponseMessage =
4+
MessageToPlugin<'preview-dimension'>
5+
6+
export const isPreviewDimensionResponse = (
7+
data: unknown,
8+
): data is PreviewDimensionResponseMessage =>
9+
isMessageToPlugin(data) && data.action === 'preview-dimension'

packages/field-plugin/src/messaging/pluginMessage/containerToPluginMessage/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ export * from './UserContextRequestMessage'
99
export * from './MessageToPlugin'
1010
export * from './StoryData'
1111
export * from './Asset'
12+
export * from './PreviewDimensionResponseMessage'
1213
export * from './PromptAIResponseMessage'
1314
export * from './UserData'

packages/sandbox/src/components/FieldPluginSandbox.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,12 @@ const useSandbox = (
331331
const onSetPreviewDimension = useCallback(
332332
(message: PreviewDimensionChangeMessage) => {
333333
setPreviewDimension(message.data)
334+
335+
postToPlugin({
336+
uid,
337+
action: 'preview-dimension',
338+
callbackId: message.callbackId,
339+
})
334340
},
335341
[],
336342
)

0 commit comments

Comments
 (0)