diff --git a/newIDE/app/src/BehaviorsEditor/Editors/AnchorBehaviorEditor.js b/newIDE/app/src/BehaviorsEditor/Editors/AnchorBehaviorEditor.js index e59b16b08156..57f25d152047 100644 --- a/newIDE/app/src/BehaviorsEditor/Editors/AnchorBehaviorEditor.js +++ b/newIDE/app/src/BehaviorsEditor/Editors/AnchorBehaviorEditor.js @@ -19,10 +19,6 @@ import useForceUpdate from '../../Utils/UseForceUpdate'; import { ColumnStackLayout } from '../../UI/Layout'; import { Line } from '../../UI/Grid'; import Text from '../../UI/Text'; -import { - getPropertyValue, - updateProperty, -} from '../../ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditor'; import CompactToggleButtons, { type CompactToggleButton, } from '../../UI/CompactToggleButtons'; @@ -307,16 +303,20 @@ const AnchorBehaviorEditor = ({ const behavior = behaviors[0]; const forceUpdate = useForceUpdate(); const _getPropertyValue = React.useCallback( - (propertyName: string) => getPropertyValue(behavior, propertyName, null), + (propertyName: string) => + behavior + .getProperties() + .get(propertyName) + .getValue(), [behavior] ); const _updateProperty = React.useCallback( (propertyName: string, value: string) => { - updateProperty(project, behavior, propertyName, value, null); + behavior.updateProperty(propertyName, value); forceUpdate(); onBehaviorUpdated(); }, - [behavior, forceUpdate, onBehaviorUpdated, project] + [behavior, forceUpdate, onBehaviorUpdated] ); const _onBehaviorUpdated = React.useCallback( () => { diff --git a/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactAnchorInstanceBehaviorEditor.js b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactAnchorInstanceBehaviorEditor.js new file mode 100644 index 000000000000..8a129bbfb2b8 --- /dev/null +++ b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactAnchorInstanceBehaviorEditor.js @@ -0,0 +1,89 @@ +// @flow +import * as React from 'react'; +import { type CompactInstanceBehaviorPropertiesEditorProps } from './CompactInstanceBehaviorPropertiesEditorProps.flow'; +import { + CompactInstanceBehaviorPropertiesEditor, + getPropertyValue, + updateProperty, +} from './CompactInstanceBehaviorPropertiesEditor'; +import useForceUpdate from '../../Utils/UseForceUpdate'; +import { ColumnStackLayout } from '../../UI/Layout'; +import { + HorizontalAnchorButtonGroup, + VerticalAnchorButtonGroup, + getBasicHorizontalAnchor, + getBasicVerticalAnchor, +} from '../../BehaviorsEditor/Editors/AnchorBehaviorEditor'; + +const CompactInstanceAnchorBehaviorEditor = ({ + project, + object, + layersContainer, + behaviorMetadata, + instancesAndBehaviors, + onBehaviorUpdated, + resourceManagementProps, +}: CompactInstanceBehaviorPropertiesEditorProps): React.Node => { + const forceUpdate = useForceUpdate(); + const _getPropertyValue = (propertyName: string) => { + let commonValue = null; + for (const { initialInstance, behavior } of instancesAndBehaviors) { + const value = getPropertyValue(behavior, propertyName, initialInstance); + if (commonValue === null) { + commonValue = value; + } + if (value !== commonValue) { + return null; + } + } + return commonValue; + }; + const _updateProperty = (propertyName: string, value: string) => { + for (const { initialInstance, behavior } of instancesAndBehaviors) { + updateProperty(project, behavior, propertyName, value, initialInstance); + } + forceUpdate(); + onBehaviorUpdated(); + }; + const _onBehaviorUpdated = React.useCallback( + () => { + forceUpdate(); + onBehaviorUpdated(); + }, + [forceUpdate, onBehaviorUpdated] + ); + + const horizontalBasicAnchor = getBasicHorizontalAnchor(_getPropertyValue); + const verticalBasicAnchor = getBasicVerticalAnchor(_getPropertyValue); + + return ( + + + + + + ); +}; + +export default CompactInstanceAnchorBehaviorEditor; diff --git a/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorPropertiesEditor.js b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorPropertiesEditor.js new file mode 100644 index 000000000000..faf0dfa0bc85 --- /dev/null +++ b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorPropertiesEditor.js @@ -0,0 +1,188 @@ +// @flow +import * as React from 'react'; +import { ColumnStackLayout } from '../../UI/Layout'; +import { Trans } from '@lingui/macro'; +import { + type Schema, + type ActionButton, +} from '../../PropertiesEditor/PropertiesEditorSchema'; +import ShareExternal from '../../UI/CustomSvgIcons/ShareExternal'; +import { CompactPropertiesEditorByVisibility } from '../../CompactPropertiesEditor/CompactPropertiesEditorByVisibility'; +import propertiesMapToSchema from '../../PropertiesEditor/PropertiesMapToSchema'; +import { useForceRecompute } from '../../Utils/UseForceUpdate'; +import { type CompactInstanceBehaviorPropertiesEditorProps } from './CompactInstanceBehaviorPropertiesEditorProps.flow'; + +export const styles = { + icon: { + fontSize: 18, + }, +}; + +export const getSchemaWithOpenFullEditorButton = ({ + schema, + fullEditorLabel, + behavior, + onOpenFullEditor, +}: {| + schema: Schema, + fullEditorLabel: ?string, + behavior: gdBehavior, + onOpenFullEditor: () => void, +|}): Schema => { + if (!fullEditorLabel) return schema; + + const actionButton: ActionButton = { + label: fullEditorLabel, + disabled: 'onValuesDifferent', + nonFieldType: 'button', + showRightIcon: true, + getIcon: style => , + getValue: behavior => behavior.getName(), + onClick: behavior => onOpenFullEditor(), + }; + + let added = false; + schema.forEach(field => { + if (field.children && field.name === '') { + field.children.push(actionButton); + added = true; + } + }); + + if (!added) schema.push(actionButton); + + return schema; +}; + +export const getPropertyValue = ( + behavior: gdBehavior, + propertyName: string, + initialInstance: gdInitialInstance +): string => { + const behaviorName = behavior.getName(); + if ( + initialInstance.hasBehaviorOverridingNamed(behaviorName) && + initialInstance + .getBehaviorOverriding(behaviorName) + .hasPropertyValue(propertyName) + ) { + const behaviorOverriding = initialInstance.getBehaviorOverriding( + behaviorName + ); + return behaviorOverriding + .getProperties() + .get(propertyName) + .getValue(); + } + return behavior + .getProperties() + .get(propertyName) + .getValue(); +}; + +export const updateProperty = ( + project: gdProject, + behavior: gdBehavior, + propertyName: string, + value: string, + initialInstance: gdInitialInstance +): void => { + const behaviorName = behavior.getName(); + const behaviorOverriding = initialInstance.hasBehaviorOverridingNamed( + behaviorName + ) + ? initialInstance.getBehaviorOverriding(behaviorName) + : initialInstance.addNewBehaviorOverriding( + project, + behavior.getTypeName(), + behaviorName + ); + const behaviorProperties = behavior.getProperties(); + const inheritedValue = behaviorProperties.has(propertyName) + ? behaviorProperties.get(propertyName).getValue() + : null; + if (inheritedValue === value) { + behaviorOverriding.removeProperty(propertyName); + } else { + behaviorOverriding.updateProperty(propertyName, value); + } +}; + +export const CompactInstanceBehaviorPropertiesEditor = ({ + project, + behaviorMetadata, + object, + layersContainer, + instancesAndBehaviors, + onBehaviorUpdated, + resourceManagementProps, +}: CompactInstanceBehaviorPropertiesEditorProps): React.Node => { + const [schemaRecomputeTrigger, forceRecomputeSchema] = useForceRecompute(); + + const propertiesSchema: Schema = React.useMemo( + () => { + if (schemaRecomputeTrigger) { + // schemaRecomputeTrigger allows to invalidate the schema when required. + } + if (instancesAndBehaviors.length === 0) { + return []; + } + const behaviorProperties = instancesAndBehaviors[0].behavior.getProperties(); + return propertiesMapToSchema({ + properties: behaviorProperties, + defaultValueProperties: behaviorProperties, + getPropertyValue: ( + { + behavior, + initialInstance, + }: { behavior: gdBehavior, initialInstance: gdInitialInstance }, + propertyName + ) => getPropertyValue(behavior, propertyName, initialInstance), + onUpdateProperty: ( + { + behavior, + initialInstance, + }: { behavior: gdBehavior, initialInstance: gdInitialInstance }, + propertyName, + value + ) => + updateProperty( + project, + behavior, + propertyName, + value, + initialInstance + ), + object, + layersContainer, + visibility: 'All', + showcaseNonDefaultValues: true, + hideResourceProperties: true, + shouldDisabledFieldsWithMixedValues: false, + }); + }, + [ + schemaRecomputeTrigger, + instancesAndBehaviors, + object, + layersContainer, + project, + ] + ); + + return ( + + Nothing to configure for this behavior.} + customizeBasicSchema={null} + onRefreshAllFields={forceRecomputeSchema} + /> + + ); +}; diff --git a/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorPropertiesEditorProps.flow.js b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorPropertiesEditorProps.flow.js new file mode 100644 index 000000000000..556a62de0434 --- /dev/null +++ b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorPropertiesEditorProps.flow.js @@ -0,0 +1,19 @@ +// @flow +import { type ResourceManagementProps } from '../../ResourcesList/ResourceSource'; + +/** + * The props given to any behavior editor + */ +export type CompactInstanceBehaviorPropertiesEditorProps = {| + project: gdProject, + behaviorMetadata: gdBehaviorMetadata, + object: gdObject | null, + layersContainer: gdLayersContainer, + instancesAndBehaviors: Array<{ + initialInstance: gdInitialInstance, + behavior: gdBehavior, + }>, + onBehaviorUpdated: () => void, + resourceManagementProps: ResourceManagementProps, + isAdvancedSectionInitiallyUncollapsed?: boolean, +|}; diff --git a/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorsEditorService.js b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorsEditorService.js new file mode 100644 index 000000000000..26641d1091bc --- /dev/null +++ b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/CompactInstanceBehaviorsEditorService.js @@ -0,0 +1,27 @@ +// @flow +import { CompactInstanceBehaviorPropertiesEditor } from './CompactInstanceBehaviorPropertiesEditor'; +import { type CompactInstanceBehaviorPropertiesEditorProps } from './CompactInstanceBehaviorPropertiesEditorProps.flow'; +import CompactInstanceAnchorBehaviorEditor from './CompactAnchorInstanceBehaviorEditor'; + +/** + * A service returning editor components for each behavior type. + */ +const CompactBehaviorsEditorService = { + getEditor( + behaviorType: string + ): React.ComponentType { + // $FlowFixMe[object-this-reference] + if (!this.components[behaviorType]) { + return CompactInstanceBehaviorPropertiesEditor; // Default properties editor + } + // $FlowFixMe[object-this-reference] + return this.components[behaviorType].component; // Custom behavior editor + }, + components: { + 'AnchorBehavior::AnchorBehavior': { + component: CompactInstanceAnchorBehaviorEditor, + }, + }, +}; + +export default CompactBehaviorsEditorService; diff --git a/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/index.js b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/index.js index 5a46e66b05a9..c30d8139fbd8 100644 --- a/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/index.js +++ b/newIDE/app/src/InstancesEditor/CompactInstancePropertiesEditor/index.js @@ -42,8 +42,9 @@ import Window from '../../Utils/Window'; import { type ResourceManagementProps } from '../../ResourcesList/ResourceSource'; import { usePersistedScrollPosition } from '../../Utils/UsePersistedScrollPosition'; import EmptyMessage from '../../UI/EmptyMessage'; -import CompactBehaviorsEditorService from '../../ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorsEditorService'; +import CompactInstanceBehaviorsEditorService from './CompactInstanceBehaviorsEditorService'; import { exceptionallyGuardAgainstDeadObject } from '../../Utils/IsNullPtr'; +import { getAllVisibleBehaviorNames } from '../../Utils/Behavior'; const gd: libGDevelop = global.gd; @@ -157,7 +158,6 @@ export const CompactInstancePropertiesEditor = ({ * obviously plus instance-wise variables with same name). */ const shouldDisplayVariablesList = instances.length === 1; - const shouldDisplayBehaviorsList = instances.length === 1; const variablesContainer = shouldDisplayVariablesList ? exceptionallyGuardAgainstDeadObject(instance.getVariables()) : null; @@ -200,41 +200,45 @@ export const CompactInstancePropertiesEditor = ({ const { object, instanceSchema, allVisibleBehaviors } = React.useMemo<{| object?: gdObject, instanceSchema?: Schema, - allVisibleBehaviors: Array, + allVisibleBehaviors: Array | null, |}>( () => { if (!instance) return { object: undefined, instanceSchema: undefined, - allVisibleBehaviors: [], + allVisibleBehaviors: null, }; - const associatedObjectName = instance.getObjectName(); - const object = getObjectByName( - globalObjectsContainer, - objectsContainer, - associatedObjectName - ); - const properties = instance.getCustomProperties( - globalObjectsContainer || objectsContainer, - objectsContainer - ); - if (!object) + const objectsMap = new Map(); + for (const instance of instances) { + const associatedObjectName = instance.getObjectName(); + if (objectsMap.has(associatedObjectName)) { + continue; + } + const object = getObjectByName( + globalObjectsContainer, + objectsContainer, + associatedObjectName + ); + if (object) { + objectsMap.set(associatedObjectName, object); + } + } + const objects = [...objectsMap.values()]; + const object = objects[0]; + if (!object) { return { object: undefined, instanceSchema: undefined, - allVisibleBehaviors: [], + allVisibleBehaviors: null, }; + } - const allVisibleBehaviors = object - .getAllBehaviorNames() - .toJSArray() - .map(behaviorName => object.getBehavior(behaviorName)) - .filter(behavior => !behavior.isDefaultBehavior()) - // We don't keep the behaviors directly because they may be destroyed - // if the object is rebuilt from a serialization. - .map(behavior => behavior.getName()); + const properties = instance.getCustomProperties( + globalObjectsContainer || objectsContainer, + objectsContainer + ); const objectMetadata = gd.MetadataProvider.getObjectMetadata( project.getCurrentPlatform(), @@ -291,7 +295,7 @@ export const CompactInstancePropertiesEditor = ({ return { object, instanceSchema, - allVisibleBehaviors, + allVisibleBehaviors: getAllVisibleBehaviorNames(objects), }; }, [ @@ -299,16 +303,19 @@ export const CompactInstancePropertiesEditor = ({ globalObjectsContainer, objectsContainer, project, - i18n, - forceUpdate, layersContainer, + i18n, onGetInstanceSize, editObjectInPropertiesPanel, + forceUpdate, + instances, ] ); const [isBehaviorsFolded, setIsBehaviorsFolded] = React.useState( - object ? !instance.hasAnyOverriddenProperty(object) : true + object + ? instances.every(instance => !instance.hasAnyOverriddenProperty(object)) + : true ); const shouldDisplayTileSetVisualizer = @@ -384,7 +391,7 @@ export const CompactInstancePropertiesEditor = ({ )} - {object && shouldDisplayBehaviorsList ? ( + {allVisibleBehaviors ? ( Behaviors} isFolded={isBehaviorsFolded} @@ -411,28 +418,41 @@ export const CompactInstancePropertiesEditor = ({ if (!object.hasBehaviorNamed(behaviorName)) { return null; } - const behavior = object.getBehavior(behaviorName); - const behaviorTypeName = behavior.getTypeName(); + const behaviorTypeName = object + .getBehavior(behaviorName) + .getTypeName(); const behaviorMetadata = gd.MetadataProvider.getBehaviorMetadata( gd.JsPlatform.get(), behaviorTypeName ); - const behaviorOverriding = instance.hasBehaviorOverridingNamed( - behaviorName - ) - ? instance.getBehaviorOverriding(behaviorName) - : null; const iconUrl = behaviorMetadata.getIconFilename(); - const CompactBehaviorComponent = CompactBehaviorsEditorService.getEditor( + const CompactInstanceBehaviorComponent = CompactInstanceBehaviorsEditorService.getEditor( behaviorTypeName ); + const instancesAndBehaviors = instances + .map(initialInstance => { + const object = getObjectByName( + globalObjectsContainer, + objectsContainer, + initialInstance.getObjectName() + ); + if (!object || !object.hasBehaviorNamed(behaviorName)) { + return null; + } + return { + initialInstance, + behavior: object.getBehavior(behaviorName), + }; + }) + .filter(Boolean); + if (instancesAndBehaviors.length === 0) { + return null; + } return ( ( @@ -443,29 +463,32 @@ export const CompactInstancePropertiesEditor = ({ ) : () => ( - { - if ( - instance.hasBehaviorOverridingNamed( - behaviorName - ) && - !instance.hasAnyOverriddenPropertyForBehavior( - behavior - ) - ) { - instance.removeBehaviorOverriding( - behaviorName - ); - // Update the view to stop using - // the removed behavior overriding. - forceUpdate(); + for (const { + initialInstance, + behavior, + } of instancesAndBehaviors) { + if ( + initialInstance.hasBehaviorOverridingNamed( + behaviorName + ) && + !initialInstance.hasAnyOverriddenPropertyForBehavior( + behavior + ) + ) { + initialInstance.removeBehaviorOverriding( + behaviorName + ); + // Update the view to stop using + // the removed behavior overriding. + forceUpdate(); + } } }} resourceManagementProps={ @@ -474,11 +497,12 @@ export const CompactInstancePropertiesEditor = ({ /> ) } - isInitiallyFolded={ - !instance.hasAnyOverriddenPropertyForBehavior( - behavior - ) - } + isInitiallyFolded={instancesAndBehaviors.every( + ({ initialInstance, behavior }) => + !initialInstance.hasAnyOverriddenPropertyForBehavior( + behavior + ) + )} titleIcon={ iconUrl ? ( ) : null } - title={behavior.getName()} + title={behaviorName} /> ); })} diff --git a/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactAnchorBehaviorEditor.js b/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactAnchorBehaviorEditor.js index 8256f0da7d81..02defd63d14f 100644 --- a/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactAnchorBehaviorEditor.js +++ b/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactAnchorBehaviorEditor.js @@ -1,11 +1,7 @@ // @flow import * as React from 'react'; import { type CompactBehaviorPropertiesEditorProps } from './CompactBehaviorPropertiesEditorProps.flow'; -import { - CompactBehaviorPropertiesEditor, - getPropertyValue, - updateProperty, -} from './CompactBehaviorPropertiesEditor'; +import { CompactBehaviorPropertiesEditor } from './CompactBehaviorPropertiesEditor'; import useForceUpdate from '../../Utils/UseForceUpdate'; import { ColumnStackLayout } from '../../UI/Layout'; import { @@ -21,8 +17,6 @@ const CompactAnchorBehaviorEditor = ({ object, layersContainer, behaviorMetadata, - behaviorOverriding, - initialInstance, onOpenFullEditor, onBehaviorUpdated, resourceManagementProps, @@ -31,7 +25,10 @@ const CompactAnchorBehaviorEditor = ({ const _getPropertyValue = (propertyName: string) => { let commonValue = null; for (const behavior of behaviors) { - const value = getPropertyValue(behavior, propertyName, initialInstance); + const value = behavior + .getProperties() + .get(propertyName) + .getValue(); if (commonValue === null) { commonValue = value; } @@ -43,7 +40,7 @@ const CompactAnchorBehaviorEditor = ({ }; const _updateProperty = (propertyName: string, value: string) => { for (const behavior of behaviors) { - updateProperty(project, behavior, propertyName, value, initialInstance); + behavior.updateProperty(propertyName, value); } forceUpdate(); onBehaviorUpdated(); @@ -77,8 +74,6 @@ const CompactAnchorBehaviorEditor = ({ layersContainer={layersContainer} behaviors={behaviors} behaviorMetadata={behaviorMetadata} - behaviorOverriding={behaviorOverriding} - initialInstance={initialInstance} onOpenFullEditor={onOpenFullEditor} onBehaviorUpdated={_onBehaviorUpdated} resourceManagementProps={resourceManagementProps} diff --git a/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditor.js b/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditor.js index 85edea6bcd0a..3a2294fdff0e 100644 --- a/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditor.js +++ b/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditor.js @@ -54,73 +54,12 @@ export const getSchemaWithOpenFullEditorButton = ({ return schema; }; -export const getPropertyValue = ( - behavior: gdBehavior, - propertyName: string, - initialInstance: gdInitialInstance | null -): string => { - const behaviorName = behavior.getName(); - if ( - initialInstance && - initialInstance.hasBehaviorOverridingNamed(behaviorName) && - initialInstance - .getBehaviorOverriding(behaviorName) - .hasPropertyValue(propertyName) - ) { - const behaviorOverriding = initialInstance.getBehaviorOverriding( - behaviorName - ); - return behaviorOverriding - .getProperties() - .get(propertyName) - .getValue(); - } - return behavior - .getProperties() - .get(propertyName) - .getValue(); -}; - -export const updateProperty = ( - project: gdProject, - behavior: gdBehavior, - propertyName: string, - value: string, - initialInstance: gdInitialInstance | null -): void => { - if (initialInstance) { - const behaviorName = behavior.getName(); - const behaviorOverriding = initialInstance.hasBehaviorOverridingNamed( - behaviorName - ) - ? initialInstance.getBehaviorOverriding(behaviorName) - : initialInstance.addNewBehaviorOverriding( - project, - behavior.getTypeName(), - behaviorName - ); - const behaviorProperties = behavior.getProperties(); - const inheritedValue = behaviorProperties.has(propertyName) - ? behaviorProperties.get(propertyName).getValue() - : null; - if (inheritedValue === value) { - behaviorOverriding.removeProperty(propertyName); - } else { - behaviorOverriding.updateProperty(propertyName, value); - } - } else { - behavior.updateProperty(propertyName, value); - } -}; - export const CompactBehaviorPropertiesEditor = ({ project, behaviorMetadata, behaviors, object, layersContainer, - behaviorOverriding, - initialInstance, onOpenFullEditor, onBehaviorUpdated, resourceManagementProps, @@ -132,30 +71,6 @@ export const CompactBehaviorPropertiesEditor = ({ if (schemaRecomputeTrigger) { // schemaRecomputeTrigger allows to invalidate the schema when required. } - if (initialInstance) { - const behavior = behaviors[0]; - const behaviorProperties = behavior.getProperties(); - return propertiesMapToSchema({ - properties: behaviorProperties, - defaultValueProperties: behaviorProperties, - getPropertyValue: (instance: gdBehavior, propertyName) => - getPropertyValue(instance, propertyName, initialInstance), - onUpdateProperty: (instance, propertyName, value) => - updateProperty( - project, - instance, - propertyName, - value, - initialInstance - ), - object, - layersContainer, - visibility: 'All', - showcaseNonDefaultValues: true, - hideResourceProperties: true, - shouldDisabledFieldsWithMixedValues: false, - }); - } const behaviorMetadataProperties = behaviorMetadata.getProperties(); return propertiesMapToSchema({ properties: behaviorMetadataProperties, @@ -174,15 +89,7 @@ export const CompactBehaviorPropertiesEditor = ({ shouldDisabledFieldsWithMixedValues: true, }); }, - [ - schemaRecomputeTrigger, - initialInstance, - behaviorMetadata, - object, - layersContainer, - behaviors, - project, - ] + [schemaRecomputeTrigger, behaviorMetadata, object, layersContainer] ); return ( diff --git a/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditorProps.flow.js b/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditorProps.flow.js index 0af2d759ba69..13c69e81f0b4 100644 --- a/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditorProps.flow.js +++ b/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/CompactBehaviorPropertiesEditorProps.flow.js @@ -10,8 +10,6 @@ export type CompactBehaviorPropertiesEditorProps = {| behaviors: Array, object: gdObject | null, layersContainer: gdLayersContainer, - behaviorOverriding: gdBehavior | null, - initialInstance: gdInitialInstance | null, onOpenFullEditor?: () => void, onBehaviorUpdated: () => void, resourceManagementProps: ResourceManagementProps, diff --git a/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/index.js b/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/index.js index 6da99c9a7a41..b3aa34ee8bb9 100644 --- a/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/index.js +++ b/newIDE/app/src/ObjectEditor/CompactObjectPropertiesEditor/index.js @@ -848,8 +848,6 @@ export const CompactObjectPropertiesEditor = ({ project={project} behaviorMetadata={behaviorMetadata} behaviors={[behavior]} - behaviorOverriding={null} - initialInstance={null} object={object} layersContainer={layersContainer} onBehaviorUpdated={() => {}} diff --git a/newIDE/app/src/ObjectGroupEditor/CompactObjectGroupPropertiesEditor.js b/newIDE/app/src/ObjectGroupEditor/CompactObjectGroupPropertiesEditor.js index dc7d8d89c861..4937440a18eb 100644 --- a/newIDE/app/src/ObjectGroupEditor/CompactObjectGroupPropertiesEditor.js +++ b/newIDE/app/src/ObjectGroupEditor/CompactObjectGroupPropertiesEditor.js @@ -370,8 +370,6 @@ export const CompactObjectGroupPropertiesEditor = ({ project={project} behaviorMetadata={behaviorMetadata} behaviors={behaviors} - behaviorOverriding={null} - initialInstance={null} object={null} layersContainer={layersContainer} onBehaviorUpdated={() => {}} diff --git a/newIDE/app/src/stories/componentStories/ObjectEditor/CompactAnchorBehaviorEditor.stories.js b/newIDE/app/src/stories/componentStories/ObjectEditor/CompactAnchorBehaviorEditor.stories.js index e25dbbaa9c9a..e49589fd90a7 100644 --- a/newIDE/app/src/stories/componentStories/ObjectEditor/CompactAnchorBehaviorEditor.stories.js +++ b/newIDE/app/src/stories/componentStories/ObjectEditor/CompactAnchorBehaviorEditor.stories.js @@ -34,8 +34,6 @@ export const Default = (): React.Node => { behaviors={[anchorBehavior]} object={spriteObjectWithBehaviors} behaviorMetadata={behaviorMetadata} - behaviorOverriding={null} - initialInstance={null} onOpenFullEditor={action('onOpenFullEditor')} onBehaviorUpdated={action('onBehaviorUpdated')} resourceManagementProps={fakeResourceManagementProps}