diff --git a/.eslintrc.js b/.eslintrc.js index 60eabcecfeb1d..731626caf15f3 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -149,10 +149,6 @@ module.exports = { element: 'Input', message: 'use instead', }, - { - element: 'Skeleton', - message: 'use instead', - }, { element: 'Modal', message: 'use or ` instead', @@ -242,6 +238,10 @@ module.exports = { element: 'ReactJson', message: 'use for dark mode support instead', }, + { + element: 'Skeleton', + message: 'use instead', + }, { element: 'Divider', message: 'use instead', diff --git a/frontend/src/scenes/feature-flags/FeatureFlag.tsx b/frontend/src/scenes/feature-flags/FeatureFlag.tsx index 7f92c4acbed86..14dc419296a87 100644 --- a/frontend/src/scenes/feature-flags/FeatureFlag.tsx +++ b/frontend/src/scenes/feature-flags/FeatureFlag.tsx @@ -1,7 +1,7 @@ import './FeatureFlag.scss' -import { LemonSegmentedButton } from '@posthog/lemon-ui' -import { Popconfirm, Skeleton } from 'antd' +import { LemonSegmentedButton, LemonSkeleton } from '@posthog/lemon-ui' +import { Popconfirm } from 'antd' import { useActions, useValues } from 'kea' import { Form, Group } from 'kea-forms' import { router } from 'kea-router' @@ -25,7 +25,6 @@ import { LemonTag } from 'lib/lemon-ui/LemonTag/LemonTag' import { LemonTextArea } from 'lib/lemon-ui/LemonTextArea/LemonTextArea' import { Lettermark, LettermarkColor } from 'lib/lemon-ui/Lettermark' import { Link } from 'lib/lemon-ui/Link' -import { SpinnerOverlay } from 'lib/lemon-ui/Spinner/Spinner' import { featureFlagLogic as enabledFeaturesLogic } from 'lib/logic/featureFlagLogic' import { alphabet, capitalizeFirstLetter } from 'lib/utils' import { PostHogFeature } from 'posthog-js/react' @@ -124,8 +123,12 @@ export function FeatureFlag({ id }: { id?: string } = {}): JSX.Element { } if (featureFlagLoading) { return ( - // TODO: This should be skeleton loaders - +
+ + + + +
) } @@ -475,127 +478,116 @@ export function FeatureFlag({ id }: { id?: string } = {}): JSX.Element { ) : ( <> - {featureFlagLoading ? ( - - ) : ( - <> - - {featureFlag.name || Description (optional)} - {featureFlag?.tags && ( - <> - {featureFlag.can_edit ? ( - { - triggerFeatureFlagUpdate({ tags }) - }} - saving={featureFlagLoading} - tagsAvailable={tags.filter( - (tag) => !featureFlag.tags?.includes(tag) - )} - className="mt-2" - /> - ) : featureFlag.tags.length ? ( - - ) : null} - - )} - - } - buttons={ + + {featureFlag.name || Description (optional)} + {featureFlag?.tags && ( <> -
- - - View Recordings - - {featureFlags[ - FEATURE_FLAGS.FEATURE_FLAG_COHORT_CREATION - ] && ( - { - createStaticCohort() - }} - fullWidth - > - Create Cohort - - )} - - { - deleteFeatureFlag(featureFlag) - }} - disabledReason={ - featureFlagLoading - ? 'Loading...' - : !featureFlag.can_edit - ? "You have only 'View' access for this feature flag. To make changes, please contact the flag's creator." - : (featureFlag.features?.length || 0) > 0 - ? 'This feature flag is in use with an early access feature. Delete the early access feature to delete this flag' - : (featureFlag.experiment_set?.length || 0) > 0 - ? 'This feature flag is linked to an experiment. Delete the experiment to delete this flag' - : null - } - > - Delete feature flag - - - } - /> - - { + triggerFeatureFlagUpdate({ tags }) }} - type="secondary" + saving={featureFlagLoading} + tagsAvailable={tags.filter( + (tag) => !featureFlag.tags?.includes(tag) + )} + className="mt-2" /> - { - editFeatureFlag(true) - }} - disabled={featureFlagLoading || !featureFlag.can_edit} - > - Edit - -
+ ) : featureFlag.tags.length ? ( + + ) : null} - } - /> - - - )} + )} + + } + buttons={ + <> +
+ + + View Recordings + + {featureFlags[FEATURE_FLAGS.FEATURE_FLAG_COHORT_CREATION] && ( + { + createStaticCohort() + }} + fullWidth + > + Create Cohort + + )} + + { + deleteFeatureFlag(featureFlag) + }} + disabledReason={ + featureFlagLoading + ? 'Loading...' + : !featureFlag.can_edit + ? "You have only 'View' access for this feature flag. To make changes, please contact the flag's creator." + : (featureFlag.features?.length || 0) > 0 + ? 'This feature flag is in use with an early access feature. Delete the early access feature to delete this flag' + : (featureFlag.experiment_set?.length || 0) > 0 + ? 'This feature flag is linked to an experiment. Delete the experiment to delete this flag' + : null + } + > + Delete feature flag + + + } + /> + + + { + editFeatureFlag(true) + }} + disabled={featureFlagLoading || !featureFlag.can_edit} + > + Edit + +
+ + } + /> + )} diff --git a/frontend/src/scenes/plugins/source/PluginSource.tsx b/frontend/src/scenes/plugins/source/PluginSource.tsx index c48d59c2cce26..9a5f7e1b876be 100644 --- a/frontend/src/scenes/plugins/source/PluginSource.tsx +++ b/frontend/src/scenes/plugins/source/PluginSource.tsx @@ -107,6 +107,7 @@ export function PluginSource({

{pluginSourceLoading ? ( + // eslint-disable-next-line react/forbid-elements ) : ( <> diff --git a/frontend/src/scenes/trends/persons-modal/PersonsModal.tsx b/frontend/src/scenes/trends/persons-modal/PersonsModal.tsx index 05233d66aad46..feb9d2379ec40 100644 --- a/frontend/src/scenes/trends/persons-modal/PersonsModal.tsx +++ b/frontend/src/scenes/trends/persons-modal/PersonsModal.tsx @@ -1,8 +1,16 @@ import './PersonsModal.scss' -import { LemonBadge, LemonButton, LemonDivider, LemonInput, LemonModal, LemonSelect, Link } from '@posthog/lemon-ui' +import { + LemonBadge, + LemonButton, + LemonDivider, + LemonInput, + LemonModal, + LemonSelect, + LemonSkeleton, + Link, +} from '@posthog/lemon-ui' import { LemonModalProps } from '@posthog/lemon-ui' -import { Skeleton } from 'antd' import { useActions, useValues } from 'kea' import { CopyToClipboardInline } from 'lib/components/CopyToClipboard' import { triggerExport } from 'lib/components/ExportButton/exporter' @@ -197,7 +205,10 @@ export function PersonsModal({ ))} ) : actorsResponseLoading ? ( - +
+ + +
) : (
We couldn't find any matching {actorLabel.plural} for this data point.