mirror of
https://github.com/maputnik/editor.git
synced 2026-02-24 13:30:00 +00:00
## Launch Checklist This adds support for `relief-color` property so that it will create an elevation expression when the button is pressed. It also adds support for `colorArray` and `numberArray` types so that the user would be able to add the relevant information. Before: <img width="403" height="324" alt="image" src="https://github.com/user-attachments/assets/250abd81-6176-4711-a1ee-d33d443932d7" /> <img width="403" height="324" alt="image" src="https://github.com/user-attachments/assets/6a1bb268-66db-42a1-97fc-33e5a40863b6" /> After: <img width="403" height="324" alt="image" src="https://github.com/user-attachments/assets/8ebaa1ea-4ef9-4aed-abcd-3c8b0057ea76" /> <img width="403" height="324" alt="image" src="https://github.com/user-attachments/assets/e0728c92-85f9-4b86-8635-8877cf257b2f" /> - [x] Briefly describe the changes in this PR. - [x] Include before/after visuals or gifs if this PR includes visual changes. - [x] Write tests for all new functionality. - [x] Add an entry to `CHANGELOG.md` under the `## main` section. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
52 lines
1.2 KiB
TypeScript
52 lines
1.2 KiB
TypeScript
import Block from './Block'
|
|
import InputSpec, { FieldSpecType, InputSpecProps } from './InputSpec'
|
|
import Fieldset from './Fieldset'
|
|
|
|
function getElementFromType(fieldSpec: { type?: FieldSpecType, values?: unknown[] }): typeof Fieldset | typeof Block {
|
|
switch(fieldSpec.type) {
|
|
case 'color':
|
|
return Block;
|
|
case 'enum':
|
|
return (Object.keys(fieldSpec.values!).length <= 3 ? Fieldset : Block)
|
|
case 'boolean':
|
|
return Block;
|
|
case 'array':
|
|
return Fieldset;
|
|
case 'resolvedImage':
|
|
return Block;
|
|
case 'number':
|
|
return Block;
|
|
case 'string':
|
|
return Block;
|
|
case 'formatted':
|
|
return Block;
|
|
case 'padding':
|
|
return Block;
|
|
case 'numberArray':
|
|
return Fieldset;
|
|
case 'colorArray':
|
|
return Fieldset;
|
|
case 'variableAnchorOffsetCollection':
|
|
return Fieldset;
|
|
default:
|
|
console.warn("No such type for: " + fieldSpec.type);
|
|
return Block;
|
|
}
|
|
}
|
|
|
|
export type FieldSpecProps = InputSpecProps & {
|
|
name?: string
|
|
};
|
|
|
|
const FieldSpec: React.FC<FieldSpecProps> = (props) => {
|
|
const TypeBlock = getElementFromType(props.fieldSpec!);
|
|
|
|
return (
|
|
<TypeBlock label={props.label} action={props.action} fieldSpec={props.fieldSpec}>
|
|
<InputSpec {...props} />
|
|
</TypeBlock>
|
|
);
|
|
};
|
|
|
|
export default FieldSpec;
|