diff --git a/README.md b/README.md index 1d207587..2aed4045 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ npx @svgr/cli --icon --replace-attr-values "#063855=currentColor" icon.svg ```js import * as React from 'react' -const SvgComponent = props => ( +const SvgComponent = (props) => ( diff --git a/api/svgr.js b/api/svgr.js index 05bacaf9..1088693a 100644 --- a/api/svgr.js +++ b/api/svgr.js @@ -11,10 +11,10 @@ module.exports = (req, res) => { return } svgr(req.body.code, { ...req.body.options, plugins: [svgo, jsx, prettier] }) - .then(output => { + .then((output) => { res.status(200).json({ output }) }) - .catch(error => { + .catch((error) => { res.status(400).json({ error: error.message }) }) } diff --git a/packages/babel-plugin-add-jsx-attribute/src/index.js b/packages/babel-plugin-add-jsx-attribute/src/index.js index 3b6101d2..c64e5a14 100644 --- a/packages/babel-plugin-add-jsx-attribute/src/index.js +++ b/packages/babel-plugin-add-jsx-attribute/src/index.js @@ -52,7 +52,7 @@ const addJSXAttribute = ({ types: t, template }, opts) => { const newAttribute = getAttribute({ spread, name, value, literal }) const attributes = path.get('attributes') - const isEqualAttribute = attribute => { + const isEqualAttribute = (attribute) => { if (spread) { return attribute.get('argument').isIdentifier({ name }) } @@ -60,7 +60,7 @@ const addJSXAttribute = ({ types: t, template }, opts) => { return attribute.get('name').isJSXIdentifier({ name }) } - const replaced = attributes.some(attribute => { + const replaced = attributes.some((attribute) => { if (!isEqualAttribute(attribute)) return false attribute.replaceWith(newAttribute) return true diff --git a/packages/babel-plugin-remove-jsx-attribute/src/index.js b/packages/babel-plugin-remove-jsx-attribute/src/index.js index 86bef1fc..182b4ad4 100644 --- a/packages/babel-plugin-remove-jsx-attribute/src/index.js +++ b/packages/babel-plugin-remove-jsx-attribute/src/index.js @@ -3,7 +3,7 @@ const removeJSXAttribute = (api, opts) => ({ JSXOpeningElement(path) { if (!opts.elements.includes(path.node.name.name)) return - path.get('attributes').forEach(attribute => { + path.get('attributes').forEach((attribute) => { const nodeName = attribute.node.name if (nodeName && opts.attributes.includes(nodeName.name)) { attribute.remove() diff --git a/packages/babel-plugin-svg-dynamic-title/src/index.js b/packages/babel-plugin-svg-dynamic-title/src/index.js index cc94e9ea..e68f39c4 100644 --- a/packages/babel-plugin-svg-dynamic-title/src/index.js +++ b/packages/babel-plugin-svg-dynamic-title/src/index.js @@ -4,7 +4,7 @@ const plugin = ({ types: t }) => ({ visitor: { JSXElement(path) { if ( - !elements.some(element => + !elements.some((element) => path.get('openingElement.name').isJSXIdentifier({ name: element }), ) ) { @@ -28,7 +28,7 @@ const plugin = ({ types: t }) => ({ function enhanceAttributes(attributes) { const existingId = attributes.find( - attribute => attribute.name.name === 'id', + (attribute) => attribute.name.name === 'id', ) if (!existingId) { return [...attributes, createTitleIdAttribute()] @@ -89,7 +89,7 @@ const plugin = ({ types: t }) => ({ // store the title element let titleElement - const hasTitle = path.get('children').some(childPath => { + const hasTitle = path.get('children').some((childPath) => { if (!childPath.isJSXElement()) return false if (childPath.node === titleElement) return false if (childPath.node.openingElement.name.name !== 'title') return false diff --git a/packages/babel-plugin-svg-em-dimensions/src/index.js b/packages/babel-plugin-svg-em-dimensions/src/index.js index e6c6c350..a0a53b07 100644 --- a/packages/babel-plugin-svg-em-dimensions/src/index.js +++ b/packages/babel-plugin-svg-em-dimensions/src/index.js @@ -5,7 +5,7 @@ const plugin = ({ types: t }) => ({ JSXOpeningElement: { enter(path) { if ( - !elements.some(element => + !elements.some((element) => path.get('name').isJSXIdentifier({ name: element }), ) ) @@ -14,7 +14,7 @@ const plugin = ({ types: t }) => ({ const requiredAttributes = ['width', 'height'] const attributeValue = '1em' - path.get('attributes').forEach(attributePath => { + path.get('attributes').forEach((attributePath) => { if (!attributePath.isJSXAttribute()) return const index = requiredAttributes.indexOf(attributePath.node.name.name) @@ -25,7 +25,7 @@ const plugin = ({ types: t }) => ({ requiredAttributes.splice(index, 1) }) - requiredAttributes.forEach(attribute => { + requiredAttributes.forEach((attribute) => { path.pushContainer( 'attributes', t.jsxAttribute( diff --git a/packages/babel-plugin-transform-react-native-svg/src/index.js b/packages/babel-plugin-transform-react-native-svg/src/index.js index 39806c0d..85f68b71 100644 --- a/packages/babel-plugin-transform-react-native-svg/src/index.js +++ b/packages/babel-plugin-transform-react-native-svg/src/index.js @@ -76,11 +76,11 @@ const plugin = ({ types: t }, { expo }) => { const importDeclarationVisitor = { ImportDeclaration(path, state) { if (path.get('source').isStringLiteral({ value: 'react-native-svg' })) { - state.replacedComponents.forEach(component => { + state.replacedComponents.forEach((component) => { if ( path .get('specifiers') - .some(specifier => + .some((specifier) => specifier.get('local').isIdentifier({ name: component }), ) ) { diff --git a/packages/babel-plugin-transform-svg-component/src/index.test.js b/packages/babel-plugin-transform-svg-component/src/index.test.js index d7c6ffeb..9b8868c9 100644 --- a/packages/babel-plugin-transform-svg-component/src/index.test.js +++ b/packages/babel-plugin-transform-svg-component/src/index.test.js @@ -1,7 +1,7 @@ import { transform } from '@babel/core' import plugin from '.' -const testPlugin = language => (code, options) => { +const testPlugin = (language) => (code, options) => { const result = transform(code, { plugins: [ '@babel/plugin-syntax-jsx', @@ -14,7 +14,7 @@ const testPlugin = language => (code, options) => { } describe('plugin', () => { - describe.each(['javascript', 'typescript'])('%s', language => { + describe.each(['javascript', 'typescript'])('%s', (language) => { it('transforms whole program', () => { const { code } = testPlugin(language)('', { state: { componentName: 'SvgComponent' }, diff --git a/packages/babel-preset/src/index.js b/packages/babel-preset/src/index.js index 2148c6ca..68e66f10 100644 --- a/packages/babel-preset/src/index.js +++ b/packages/babel-preset/src/index.js @@ -14,14 +14,14 @@ function getAttributeValue(value) { } function propsToAttributes(props) { - return Object.keys(props).map(name => { + return Object.keys(props).map((name) => { const { literal, value } = getAttributeValue(props[name]) return { name, literal, value } }) } function replaceMapToValues(replaceMap) { - return Object.keys(replaceMap).map(value => { + return Object.keys(replaceMap).map((value) => { const { literal, value: newValue } = getAttributeValue(replaceMap[value]) return { value, newValue, literal } }) diff --git a/packages/cli/src/index.js b/packages/cli/src/index.js index 9d8b53b0..94777eff 100644 --- a/packages/cli/src/index.js +++ b/packages/cli/src/index.js @@ -3,18 +3,28 @@ import program from 'commander' import path from 'path' import glob from 'glob' import fs from 'fs' +import { loadConfig } from '@svgr/core' import pkg from '../package.json' import fileCommand from './fileCommand' import dirCommand from './dirCommand' import { stat, exitError } from './util' +function noUndefinedKeys(obj) { + return Object.entries(obj).reduce((obj, [key, value]) => { + if (value !== undefined) { + obj[key] = value + } + return obj + }, {}) +} + function parseObject(arg, accumulation = {}) { const [name, value] = arg.split('=') return { ...accumulation, [name]: value } } function parseObjectList(arg, accumulation = {}) { - const args = arg.split(',').map(str => str.trim()) + const args = arg.split(',').map((str) => str.trim()) return args.reduce((acc, arg) => parseObject(arg, acc), accumulation) } @@ -27,7 +37,7 @@ function isFile(filePath) { } } -const parseConfig = name => arg => { +const parseConfig = (name) => (arg) => { const json = isFile(arg) ? fs.readFileSync(arg) : arg try { return JSON.parse(json) @@ -117,7 +127,7 @@ async function run() { }, []) await Promise.all( - filenames.map(async filename => { + filenames.map(async (filename) => { try { await stat(filename) } catch (error) { @@ -131,25 +141,30 @@ async function run() { process.exit(2) } - const config = { ...program } + const opts = noUndefinedKeys(program.opts()) - if (config.expandProps === 'none') { + const config = await loadConfig(opts, { filePath: process.cwd() }) + + // Back config file + config.configFile = opts.configFile + + if (program.expandProps === 'none') { config.expandProps = false } - if (config.dimensions === true) { + if (program.dimensions === true) { delete config.dimensions } - if (config.svgo === true) { + if (program.svgo === true) { delete config.svgo } - if (config.prettier === true) { + if (program.prettier === true) { delete config.prettier } - if (config.template) { + if (program.template) { try { // eslint-disable-next-line global-require, import/no-dynamic-require const template = require(path.join(process.cwd(), program.template)) @@ -165,7 +180,7 @@ async function run() { } } - if (config.indexTemplate) { + if (program.indexTemplate) { try { // eslint-disable-next-line global-require, import/no-dynamic-require const indexTemplate = require(path.join( @@ -187,10 +202,11 @@ async function run() { } const command = program.outDir ? dirCommand : fileCommand + await command(program, filenames, config) } -run().catch(error => { +run().catch((error) => { setTimeout(() => { throw error }) diff --git a/packages/cli/src/index.test.js b/packages/cli/src/index.test.js index 647e05a2..7d29753b 100644 --- a/packages/cli/src/index.test.js +++ b/packages/cli/src/index.test.js @@ -11,7 +11,7 @@ const svgr = path.join(__dirname, 'index.js') const babelNode = path.join(__dirname, '../../../node_modules/.bin/babel-node') describe('cli', () => { - const cli = async args => { + const cli = async (args) => { const { stdout } = await exec(`${babelNode} -- ${svgr} ${args}`) return stdout } @@ -60,7 +60,7 @@ describe('cli', () => { const sorted = result .split(/\n/) .sort() - .map(x => x.toLowerCase()) + .map((x) => x.toLowerCase()) .join('\n') expect(sorted).toMatchSnapshot() }, 10000) @@ -72,7 +72,7 @@ describe('cli', () => { const sorted = result .split(/\n/) .sort() - .map(x => x.toLowerCase()) + .map((x) => x.toLowerCase()) .join('\n') expect(sorted).toMatchSnapshot() }, 10000) @@ -81,10 +81,7 @@ describe('cli', () => { const result = await cli( '--silent --out-dir __fixtures_build__/whole __fixtures__', ) - const sorted = result - .split(/\n/) - .sort() - .join('\n') + const sorted = result.split(/\n/).sort().join('\n') expect(sorted).toMatchSnapshot() }, 10000) @@ -136,7 +133,7 @@ describe('cli', () => { ['--typescript --ref --title-prop'], ])( 'should support various args', - async args => { + async (args) => { const result = await cli(`${args} __fixtures__/simple/file.svg`) expect(result).toMatchSnapshot(args) }, diff --git a/packages/core/README.md b/packages/core/README.md index 1ee5f6c2..efb31756 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -23,9 +23,11 @@ const svgCode = ` ` -svgr(svgCode, { icon: true }, { componentName: 'MyComponent' }).then(jsCode => { - console.log(jsCode) -}) +svgr(svgCode, { icon: true }, { componentName: 'MyComponent' }).then( + (jsCode) => { + console.log(jsCode) + }, +) ``` Use `svgr.sync(code, config, state)` if you would like to use sync version. @@ -37,7 +39,7 @@ By default `@svgr/core` doesn't include `svgo` and `prettier` plugins, if you wa ```js svgr(svgCode, { plugins: ['@svgr/plugin-svgo', '@svgr/plugin-jsx', '@svgr/plugin-prettier'], -}).then(jsCode => { +}).then((jsCode) => { console.log(jsCode) }) ``` diff --git a/packages/core/src/__snapshots__/config.test.js.snap b/packages/core/src/__snapshots__/config.test.js.snap index 8eeffc3c..bc962618 100644 --- a/packages/core/src/__snapshots__/config.test.js.snap +++ b/packages/core/src/__snapshots__/config.test.js.snap @@ -4,7 +4,6 @@ exports[`svgo async #loadConfig [async] should load config using filePath 1`] = Object { "dimensions": true, "expandProps": "end", - "h2xConfig": null, "icon": true, "memo": false, "native": false, @@ -33,7 +32,6 @@ exports[`svgo async #loadConfig [async] should not load config with "runtimeConf Object { "dimensions": true, "expandProps": "end", - "h2xConfig": null, "icon": true, "memo": false, "native": false, @@ -63,7 +61,6 @@ exports[`svgo async #loadConfig [async] should use default config without state. Object { "dimensions": false, "expandProps": "end", - "h2xConfig": null, "icon": false, "memo": false, "native": false, @@ -86,7 +83,6 @@ exports[`svgo async #loadConfig [async] should work with custom config path 1`] Object { "dimensions": true, "expandProps": "end", - "h2xConfig": null, "icon": true, "memo": false, "native": false, @@ -115,7 +111,6 @@ exports[`svgo sync #loadConfig [sync] should load config using filePath 1`] = ` Object { "dimensions": true, "expandProps": "end", - "h2xConfig": null, "icon": true, "memo": false, "native": false, @@ -144,7 +139,6 @@ exports[`svgo sync #loadConfig [sync] should not load config with "runtimeConfig Object { "dimensions": true, "expandProps": "end", - "h2xConfig": null, "icon": true, "memo": false, "native": false, @@ -174,7 +168,6 @@ exports[`svgo sync #loadConfig [sync] should use default config without state.fi Object { "dimensions": false, "expandProps": "end", - "h2xConfig": null, "icon": false, "memo": false, "native": false, @@ -197,7 +190,6 @@ exports[`svgo sync #loadConfig [sync] should work with custom config path 1`] = Object { "dimensions": true, "expandProps": "end", - "h2xConfig": null, "icon": true, "memo": false, "native": false, diff --git a/packages/core/src/config.js b/packages/core/src/config.js index 58429389..a492e9a5 100644 --- a/packages/core/src/config.js +++ b/packages/core/src/config.js @@ -1,7 +1,6 @@ import { cosmiconfig, cosmiconfigSync } from 'cosmiconfig' export const DEFAULT_CONFIG = { - h2xConfig: null, dimensions: true, expandProps: 'end', icon: false, @@ -56,7 +55,7 @@ export async function resolveConfigFile(filePath) { return result ? result.filepath : null } -resolveConfigFile.sync = filePath => { +resolveConfigFile.sync = (filePath) => { const result = explorerSync.search(filePath) return result ? result.filepath : null } diff --git a/packages/core/src/config.test.js b/packages/core/src/config.test.js index 11379a0d..01c03c94 100644 --- a/packages/core/src/config.test.js +++ b/packages/core/src/config.test.js @@ -4,7 +4,7 @@ import { resolveConfig, resolveConfigFile, loadConfig } from './config' const getMethod = (method, mode) => (mode === 'sync' ? method.sync : method) describe('svgo', () => { - describe.each([['sync'], ['async']])('%s', mode => { + describe.each([['sync'], ['async']])('%s', (mode) => { describe(`#resolveConfig [${mode}]`, () => { it('should return null if no config found', async () => { const config = await getMethod(resolveConfig, mode)('/tmp') @@ -12,9 +12,10 @@ describe('svgo', () => { }) it('should return config if found', async () => { - const config = await getMethod(resolveConfig, mode)( - path.join(__dirname, '__fixtures__/svgr'), - ) + const config = await getMethod( + resolveConfig, + mode, + )(path.join(__dirname, '__fixtures__/svgr')) expect(config).toEqual({ icon: true, noSemi: true, @@ -30,9 +31,10 @@ describe('svgo', () => { }) it('should return config path if found', async () => { - const config = await getMethod(resolveConfigFile, mode)( - path.join(__dirname, '__fixtures__/svgr'), - ) + const config = await getMethod( + resolveConfigFile, + mode, + )(path.join(__dirname, '__fixtures__/svgr')) expect(config).toMatch(/__fixtures__(\/|\\)svgr(\/|\\)\.svgrrc$/) }) }) diff --git a/packages/core/src/convert.test.js b/packages/core/src/convert.test.js index e1b8c092..bad043ef 100644 --- a/packages/core/src/convert.test.js +++ b/packages/core/src/convert.test.js @@ -311,7 +311,7 @@ describe('convert', () => { { memo: true }, ] - test.each(configs)('should support options %#', async config => { + test.each(configs)('should support options %#', async (config) => { const result = await convertWithAllPlugins(svgBaseCode, config) expect(result).toMatchSnapshot() }) diff --git a/packages/hast-util-to-babel-ast/README.md b/packages/hast-util-to-babel-ast/README.md index f2df68d3..f4d3e93c 100644 --- a/packages/hast-util-to-babel-ast/README.md +++ b/packages/hast-util-to-babel-ast/README.md @@ -15,7 +15,7 @@ npm install --save-dev @svgr/hast-util-to-babel-ast ## Usage ```js -import { parse } from 'svg-parser'; +import { parse } from 'svg-parser' import toBabelAST from '@svgr/hast-util-to-babel-ast' const hastTree = parse(``) diff --git a/packages/hast-util-to-babel-ast/src/all.js b/packages/hast-util-to-babel-ast/src/all.js index 255f12e4..18dcc053 100644 --- a/packages/hast-util-to-babel-ast/src/all.js +++ b/packages/hast-util-to-babel-ast/src/all.js @@ -12,7 +12,7 @@ function all(h, parent) { values.push(result) } - return values.filter(node => node) + return values.filter((node) => node) } export default all diff --git a/packages/hast-util-to-babel-ast/src/getAttributes.js b/packages/hast-util-to-babel-ast/src/getAttributes.js index fbc0c89b..6270caf9 100644 --- a/packages/hast-util-to-babel-ast/src/getAttributes.js +++ b/packages/hast-util-to-babel-ast/src/getAttributes.js @@ -49,7 +49,7 @@ function getValue(key, value) { return t.stringLiteral(replaceSpaces(value)) } -const getAttributes = node => { +const getAttributes = (node) => { const keys = Object.keys(node.properties) const attributes = [] let index = -1 diff --git a/packages/hast-util-to-babel-ast/src/util.js b/packages/hast-util-to-babel-ast/src/util.js index 5ab94576..191d1cef 100644 --- a/packages/hast-util-to-babel-ast/src/util.js +++ b/packages/hast-util-to-babel-ast/src/util.js @@ -35,7 +35,7 @@ export function trimEnd(haystack, needle) { const KEBAB_REGEX = /[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g export function kebabCase(str) { - return str.replace(KEBAB_REGEX, match => `-${match.toLowerCase()}`) + return str.replace(KEBAB_REGEX, (match) => `-${match.toLowerCase()}`) } const SPACES_REGEXP = /[\t\r\n\u0085\u2028\u2029]+/g diff --git a/packages/parcel-plugin-svgr/src/index.test.js b/packages/parcel-plugin-svgr/src/index.test.js index 33b11354..0a9cc495 100644 --- a/packages/parcel-plugin-svgr/src/index.test.js +++ b/packages/parcel-plugin-svgr/src/index.test.js @@ -2,10 +2,10 @@ import Bundler from 'parcel' import path from 'path' import plugin from '.' -const getCode = bundle => +const getCode = (bundle) => Array.from(bundle.assets) - .filter(asset => asset.id === 'icon.svg') - .map(asset => asset.generated) + .filter((asset) => asset.id === 'icon.svg') + .map((asset) => asset.generated) describe('parcel plugin', () => { it('should convert file', async () => { diff --git a/packages/plugin-svgo/src/index.js b/packages/plugin-svgo/src/index.js index 4fb9908e..d8c0c2ab 100644 --- a/packages/plugin-svgo/src/index.js +++ b/packages/plugin-svgo/src/index.js @@ -13,7 +13,7 @@ const explorer = cosmiconfigSync('svgo', { 'svgo.config.js', '.svgo.yml', ], - transform: result => result && result.config, + transform: (result) => result && result.config, cache: true, }) @@ -58,7 +58,7 @@ function optimizeSync(svgstr, info) { let result - const optimizeOnceCallback = svgjs => { + const optimizeOnceCallback = (svgjs) => { if (svgjs.error) { throw svgjs.error } diff --git a/packages/rollup/src/index.test.js b/packages/rollup/src/index.test.js index 43a54e25..56ece938 100644 --- a/packages/rollup/src/index.test.js +++ b/packages/rollup/src/index.test.js @@ -9,7 +9,7 @@ const compile = (plugins = [svgr()]) => plugins, }) -const getCode = bundler => +const getCode = (bundler) => bundler.cache.modules.find( ({ id }) => id.includes('__fixtures__/simple/file.svg') || diff --git a/packages/webpack/src/index.js b/packages/webpack/src/index.js index 5baa670c..20fb67ea 100644 --- a/packages/webpack/src/index.js +++ b/packages/webpack/src/index.js @@ -40,7 +40,7 @@ function svgrLoader(source) { return exportMatches ? `export default ${exportMatches[1]}` : null })() - const tranformSvg = svg => + const tranformSvg = (svg) => convert(svg, options, { caller: { name: '@svgr/webpack', @@ -49,12 +49,12 @@ function svgrLoader(source) { }, filePath: this.resourcePath, }) - .then(jsCode => { + .then((jsCode) => { if (!babel) return jsCode return transformAsync(jsCode, babelOptions).then(({ code }) => code) }) - .then(result => callback(null, result)) - .catch(err => callback(err)) + .then((result) => callback(null, result)) + .catch((err) => callback(err)) if (previousExport) { readSvg().then(tranformSvg) diff --git a/website/src/components/playground/Loading.js b/website/src/components/playground/Loading.js index b7cb3d9d..b4b410e4 100644 --- a/website/src/components/playground/Loading.js +++ b/website/src/components/playground/Loading.js @@ -22,7 +22,7 @@ const fadeIn = keyframes` const Loader = styled.div` flex: 1; animation: ${fadeIn} 1000ms ease-in infinite alternate; - background: url(${p => p.backgroundImage}) center no-repeat; + background: url(${(p) => p.backgroundImage}) center no-repeat; background-size: 30%; ` @@ -30,7 +30,7 @@ export function Loading() { return ( ( + render={(data) => ( )} /> diff --git a/website/src/components/playground/Playground.js b/website/src/components/playground/Playground.js index 26b2f406..96323e23 100644 --- a/website/src/components/playground/Playground.js +++ b/website/src/components/playground/Playground.js @@ -322,15 +322,22 @@ export function Playground() { { - // Detect copy - if ((event.metaKey || event.ctrlKey) && event.key === 'c') { - setTimeout(() => { - dialog.show() - setDialogDisplayed(true) - }, 50) - } - }} + onKeyDown={ + dialogDisplayed + ? null + : (event) => { + // Detect copy + if ( + (event.metaKey || event.ctrlKey) && + event.key === 'c' + ) { + setTimeout(() => { + dialog.show() + setDialogDisplayed(true) + }, 50) + } + } + } > diff --git a/website/src/components/playground/Query.js b/website/src/components/playground/Query.js index c02d3445..ebe3334f 100644 --- a/website/src/components/playground/Query.js +++ b/website/src/components/playground/Query.js @@ -39,7 +39,7 @@ function useLocation() { const history = useHistory() const [location, setLocation] = React.useState(getLocation) React.useEffect(() => { - return history.listen(location => setLocation(location)) + return history.listen((location) => setLocation(location)) }, []) return location } @@ -53,7 +53,7 @@ export function useQuery(getInitialState = {}) { locationRef.current = location }) const setState = React.useCallback( - state => { + (state) => { const search = formatQuery({ ...initialState, ...state }, initialState) if (locationRef.current.search !== search) { history.push({ diff --git a/website/src/components/playground/Settings.js b/website/src/components/playground/Settings.js index 4f745d37..7e20391c 100644 --- a/website/src/components/playground/Settings.js +++ b/website/src/components/playground/Settings.js @@ -27,7 +27,7 @@ const SettingsContainer = styled.div` ` const getGroupSettings = (group, settings) => - settings.filter(setting => setting.group === group) + settings.filter((setting) => setting.group === group) const settingComponents = { boolean: SettingsFieldBoolean, @@ -36,7 +36,7 @@ const settingComponents = { integer: SettingsFieldInteger, } -const renderSetting = setting => { +const renderSetting = (setting) => { const SettingComponent = settingComponents[setting.type] if (!SettingComponent) throw new Error(`Unknown setting type ${setting.type}`) return diff --git a/website/src/components/playground/SettingsFieldEnum.js b/website/src/components/playground/SettingsFieldEnum.js index 34b3ff0d..6fa7a259 100644 --- a/website/src/components/playground/SettingsFieldEnum.js +++ b/website/src/components/playground/SettingsFieldEnum.js @@ -9,7 +9,7 @@ export function SettingsFieldEnum({ setting }) { {setting.label} - {setting.values.map(value => ( + {setting.values.map((value) => ( - {hiddenDisclosureProps => ( + {(hiddenDisclosureProps) => (