Fix ResourceSelector incorrectly stealing the focus

The extra call to this.focus() was not necessary anymore
as handled by the SemiControlledAutoComplete.
This commit is contained in:
Florian Rival
2019-08-04 17:11:17 +01:00
parent 96e1eeee7b
commit 0db6bc8e96
2 changed files with 60 additions and 4 deletions

View File

@@ -142,10 +142,6 @@ export default class ResourceSelector extends React.Component<Props, State> {
if (!this.state.notExistingError) {
if (this.props.onChange) this.props.onChange(resourceName);
}
// Keep focusing the field after choosing something (won't do anything
// if we're just typing text).
this.focus();
}
);
};

View File

@@ -30,6 +30,7 @@ import PointsEditor from '../ObjectEditor/Editors/SpriteEditor/PointsEditor';
import CollisionMasksEditor from '../ObjectEditor/Editors/SpriteEditor/CollisionMasksEditor';
import EmptyEditor from '../ObjectEditor/Editors/EmptyEditor';
import ImageThumbnail from '../ResourcesList/ResourceThumbnail/ImageThumbnail';
import ResourceSelector from '../ResourcesList/ResourceSelector';
import ShapePainterEditor from '../ObjectEditor/Editors/ShapePainterEditor';
import ExternalEventsField from '../EventsSheet/ParameterFields/ExternalEventsField';
import LayerField from '../EventsSheet/ParameterFields/LayerField';
@@ -37,6 +38,7 @@ import MouseField from '../EventsSheet/ParameterFields/MouseField';
import SceneVariableField from '../EventsSheet/ParameterFields/SceneVariableField';
import ObjectVariableField from '../EventsSheet/ParameterFields/ObjectVariableField';
import KeyField from '../EventsSheet/ParameterFields/KeyField';
import AudioResourceField from '../EventsSheet/ParameterFields/AudioResourceField';
import ExpressionField from '../EventsSheet/ParameterFields/ExpressionField';
import StringField from '../EventsSheet/ParameterFields/StringField';
import ColorExpressionField from '../EventsSheet/ParameterFields/ColorExpressionField';
@@ -561,6 +563,25 @@ storiesOf('HelpFinder', module)
storiesOf('ParameterFields', module)
.addDecorator(paperDecorator)
.addDecorator(muiDecorator)
.add('AudioResourceField', () => (
<ValueStateHolder
initialValue={''}
render={(value, onChange) => (
<AudioResourceField
project={project}
scope={{ layout: testLayout }}
globalObjectsContainer={project}
objectsContainer={testLayout}
value={value}
onChange={onChange}
parameterRenderingService={ParameterRenderingService}
resourceSources={[]}
onChooseResource={() => Promise.reject('unimplemented')}
resourceExternalEditors={[]}
/>
)}
/>
))
.add('ExpressionField', () => (
<ValueStateHolder
initialValue={'MySpriteObject.X() + MouseX("", 0)'}
@@ -2195,6 +2216,45 @@ storiesOf('ResourcePreview', module)
/>
));
storiesOf('ResourceSelector', module)
.addDecorator(muiDecorator)
.add('image resource (not existing/missing resource)', () => (
<ResourceSelector
resourceKind="image"
project={project}
resourceSources={[]}
onChooseResource={() => Promise.reject('Unimplemented')}
resourceExternalEditors={[]}
initialResourceName="resource-that-does-not-exists-in-the-project"
onChange={action('on change')}
resourcesLoader={ResourcesLoader}
/>
))
.add('image resource', () => (
<ResourceSelector
resourceKind="image"
project={project}
resourceSources={[]}
onChooseResource={() => Promise.reject('Unimplemented')}
resourceExternalEditors={[]}
initialResourceName="icon128.png"
onChange={action('on change')}
resourcesLoader={ResourcesLoader}
/>
))
.add('audio resource', () => (
<ResourceSelector
resourceKind="audio"
project={project}
resourceSources={[]}
onChooseResource={() => Promise.reject('Unimplemented')}
resourceExternalEditors={[]}
initialResourceName="fake-audio1.mp3"
onChange={action('on change')}
resourcesLoader={ResourcesLoader}
/>
));
storiesOf('ResourcesList', module)
.addDecorator(muiDecorator)
.add('default', () => (