a93c665d20
refs https://github.com/TryGhost/Product/issues/4152 --- <!-- Leave the line below if you'd like GitHub Copilot to generate a summary from your commit --> <!-- copilot:summary --> ### <samp>🤖[[deprecated]](https://githubnext.com/copilot-for-prs-sunset) Generated by Copilot at a28462f</samp> This pull request adds a new admin-x app called `admin-x-demo`, which demonstrates how to use the shared packages `admin-x-framework` and `admin-x-design-system` to create a simple app that renders a button and a modal. It also improves the development workflow, the vite integration, the dependency management, and the type checking for the admin-x apps and packages. It modifies some files in the `admin-x-framework` and `admin-x-design-system` packages to make the modals prop optional, to introduce a new type for the props from the Ember app, to fix the z-index of the modal backdrop, and to use consistent file extensions and module syntax.
57 lines
1.9 KiB
JavaScript
57 lines
1.9 KiB
JavaScript
/* eslint-env node */
|
|
module.exports = {
|
|
root: true,
|
|
extends: [
|
|
'plugin:ghost/ts',
|
|
'plugin:react/recommended',
|
|
'plugin:react-hooks/recommended'
|
|
],
|
|
plugins: [
|
|
'ghost',
|
|
'react-refresh',
|
|
'tailwindcss'
|
|
],
|
|
settings: {
|
|
react: {
|
|
version: 'detect'
|
|
}
|
|
},
|
|
rules: {
|
|
// sort multiple import lines into alphabetical groups
|
|
'ghost/sort-imports-es6-autofix/sort-imports-es6': ['error', {
|
|
memberSyntaxSortOrder: ['none', 'all', 'single', 'multiple']
|
|
}],
|
|
|
|
// TODO: re-enable this (maybe fixed fast refresh?)
|
|
'react-refresh/only-export-components': 'off',
|
|
|
|
// suppress errors for missing 'import React' in JSX files, as we don't need it
|
|
'react/react-in-jsx-scope': 'off',
|
|
// ignore prop-types for now
|
|
'react/prop-types': 'off',
|
|
|
|
// TODO: re-enable these if deemed useful
|
|
'@typescript-eslint/no-non-null-assertion': 'off',
|
|
'@typescript-eslint/no-empty-function': 'off',
|
|
|
|
// custom react rules
|
|
'react/jsx-sort-props': ['error', {
|
|
reservedFirst: true,
|
|
callbacksLast: true,
|
|
shorthandLast: true,
|
|
locale: 'en'
|
|
}],
|
|
'react/button-has-type': 'error',
|
|
'react/no-array-index-key': 'error',
|
|
'react/jsx-key': 'off',
|
|
|
|
'tailwindcss/classnames-order': ['error', {config: 'tailwind.config.cjs'}],
|
|
'tailwindcss/enforces-negative-arbitrary-values': ['warn', {config: 'tailwind.config.cjs'}],
|
|
'tailwindcss/enforces-shorthand': ['warn', {config: 'tailwind.config.cjs'}],
|
|
'tailwindcss/migration-from-tailwind-2': ['warn', {config: 'tailwind.config.cjs'}],
|
|
'tailwindcss/no-arbitrary-value': 'off',
|
|
'tailwindcss/no-custom-classname': 'off',
|
|
'tailwindcss/no-contradicting-classname': ['error', {config: 'tailwind.config.cjs'}]
|
|
}
|
|
};
|