Skip to content

Commit c54a07a

Browse files
LuniMoonclaude
andcommitted
Add storybook stories for Anchor behavior editors
Add stories for both the compact and full versions of the Anchor behavior editor, along with Anchor behavior test data in TestProject. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent cf3545c commit c54a07a

File tree

3 files changed

+88
-0
lines changed

3 files changed

+88
-0
lines changed

newIDE/app/src/fixtures/TestProject.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,11 @@ export const makeTestProject = (gd /*: libGDevelop */) /*: TestProject */ => {
351351
'DraggableBehavior::Draggable',
352352
'Draggable'
353353
);
354+
spriteObjectWithBehaviors.addNewBehavior(
355+
project,
356+
'AnchorBehavior::AnchorBehavior',
357+
'Anchor'
358+
);
354359

355360
const group1 = new gd.ObjectGroup();
356361
group1.setName('GroupOfSprites');
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// @flow
2+
3+
import * as React from 'react';
4+
import { action } from '@storybook/addon-actions';
5+
6+
// Keep first as it creates the `global.gd` object:
7+
import { testProject } from '../../GDevelopJsInitializerDecorator';
8+
9+
import paperDecorator from '../../PaperDecorator';
10+
import AnchorBehaviorEditor from '../../../BehaviorsEditor/Editors/AnchorBehaviorEditor';
11+
import SerializedObjectDisplay from '../../SerializedObjectDisplay';
12+
import fakeResourceManagementProps from '../../FakeResourceManagement';
13+
14+
export default {
15+
title: 'ObjectEditor/AnchorBehaviorEditor',
16+
component: AnchorBehaviorEditor,
17+
decorators: [paperDecorator],
18+
};
19+
20+
export const Default = (): React.Node => {
21+
const spriteObjectWithBehaviors = testProject.spriteObjectWithBehaviors;
22+
const anchorBehavior = spriteObjectWithBehaviors.getBehavior('Anchor');
23+
24+
return (
25+
<SerializedObjectDisplay object={spriteObjectWithBehaviors}>
26+
<AnchorBehaviorEditor
27+
project={testProject.project}
28+
behavior={anchorBehavior}
29+
object={spriteObjectWithBehaviors}
30+
onBehaviorUpdated={action('onBehaviorUpdated')}
31+
resourceManagementProps={fakeResourceManagementProps}
32+
projectScopedContainersAccessor={
33+
testProject.testSceneProjectScopedContainersAccessor
34+
}
35+
/>
36+
</SerializedObjectDisplay>
37+
);
38+
};
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// @flow
2+
3+
import * as React from 'react';
4+
import { action } from '@storybook/addon-actions';
5+
6+
// Keep first as it creates the `global.gd` object:
7+
import { testProject } from '../../GDevelopJsInitializerDecorator';
8+
9+
import paperDecorator from '../../PaperDecorator';
10+
import CompactAnchorBehaviorEditor from '../../../ObjectEditor/CompactObjectPropertiesEditor/CompactAnchorBehaviorEditor';
11+
import SerializedObjectDisplay from '../../SerializedObjectDisplay';
12+
import fakeResourceManagementProps from '../../FakeResourceManagement';
13+
14+
const gd: libGDevelop = global.gd;
15+
16+
export default {
17+
title: 'ObjectEditor/CompactAnchorBehaviorEditor',
18+
component: CompactAnchorBehaviorEditor,
19+
decorators: [paperDecorator],
20+
};
21+
22+
export const Default = (): React.Node => {
23+
const spriteObjectWithBehaviors = testProject.spriteObjectWithBehaviors;
24+
const anchorBehavior = spriteObjectWithBehaviors.getBehavior('Anchor');
25+
const behaviorMetadata = gd.MetadataProvider.getBehaviorMetadata(
26+
gd.JsPlatform.get(),
27+
'AnchorBehavior::AnchorBehavior'
28+
);
29+
30+
return (
31+
<SerializedObjectDisplay object={spriteObjectWithBehaviors}>
32+
<CompactAnchorBehaviorEditor
33+
project={testProject.project}
34+
behavior={anchorBehavior}
35+
object={spriteObjectWithBehaviors}
36+
behaviorMetadata={behaviorMetadata}
37+
behaviorOverriding={null}
38+
initialInstance={null}
39+
onOpenFullEditor={action('onOpenFullEditor')}
40+
onBehaviorUpdated={action('onBehaviorUpdated')}
41+
resourceManagementProps={fakeResourceManagementProps}
42+
/>
43+
</SerializedObjectDisplay>
44+
);
45+
};

0 commit comments

Comments
 (0)