diff --git a/compiler/apps/playground/components/Editor/ConfigEditor.tsx b/compiler/apps/playground/components/Editor/ConfigEditor.tsx index 43b3f1e8a9164..63522987db052 100644 --- a/compiler/apps/playground/components/Editor/ConfigEditor.tsx +++ b/compiler/apps/playground/components/Editor/ConfigEditor.tsx @@ -10,14 +10,8 @@ import type {editor} from 'monaco-editor'; import * as monaco from 'monaco-editor'; import React, {useState, useCallback} from 'react'; import {Resizable} from 're-resizable'; -import {useSnackbar} from 'notistack'; import {useStore, useStoreDispatch} from '../StoreContext'; import {monacoOptions} from './monacoOptions'; -import { - ConfigError, - generateOverridePragmaFromConfig, - updateSourceWithOverridePragma, -} from '../../lib/configUtils'; // @ts-expect-error - webpack asset/source loader handles .d.ts files as strings import compilerTypeDefs from 'babel-plugin-react-compiler/dist/index.d.ts'; @@ -28,61 +22,17 @@ export default function ConfigEditor(): React.ReactElement { const [isExpanded, setIsExpanded] = useState(false); const store = useStore(); const dispatchStore = useStoreDispatch(); - const {enqueueSnackbar} = useSnackbar(); const toggleExpanded = useCallback(() => { setIsExpanded(prev => !prev); }, []); - const handleApplyConfig: () => Promise = async () => { - try { - const config = store.config || ''; - - if (!config.trim()) { - enqueueSnackbar( - 'Config is empty. Please add configuration options first.', - { - variant: 'warning', - }, - ); - return; - } - const newPragma = await generateOverridePragmaFromConfig(config); - const updatedSource = updateSourceWithOverridePragma( - store.source, - newPragma, - ); - - dispatchStore({ - type: 'updateFile', - payload: { - source: updatedSource, - config: config, - }, - }); - } catch (error) { - console.error('Failed to apply config:', error); - - if (error instanceof ConfigError && error.message.trim()) { - enqueueSnackbar(error.message, { - variant: 'error', - }); - } else { - enqueueSnackbar('Unexpected error: failed to apply config.', { - variant: 'error', - }); - } - } - }; - const handleChange: (value: string | undefined) => void = value => { if (value === undefined) return; - // Only update the config dispatchStore({ - type: 'updateFile', + type: 'updateConfig', payload: { - source: store.source, config: value, }, }); @@ -120,49 +70,40 @@ export default function ConfigEditor(): React.ReactElement { return (
{isExpanded ? ( - <> - -

- - Config Overrides -

-
- -
-
- - + +

+ - Config Overrides +

+
+ +
+
) : (
diff --git a/packages/react-devtools-shared/src/devtools/views/Components/ForgetBadge.css b/packages/react-devtools-shared/src/devtools/views/Components/ForgetBadge.css index e80f37083345e..415f8e96fd759 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/ForgetBadge.css +++ b/packages/react-devtools-shared/src/devtools/views/Components/ForgetBadge.css @@ -11,11 +11,3 @@ position: absolute; right: 0.25em; } - -.ForgetToggle { - display: flex; -} - -.ForgetToggle > span { /* targets .ToggleContent */ - padding: 0; -} diff --git a/packages/react-devtools-shared/src/devtools/views/Components/ForgetBadge.js b/packages/react-devtools-shared/src/devtools/views/Components/ForgetBadge.js index 00b4f0db13f9b..5048f3085f710 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/ForgetBadge.js +++ b/packages/react-devtools-shared/src/devtools/views/Components/ForgetBadge.js @@ -11,7 +11,7 @@ import * as React from 'react'; import Badge from './Badge'; import IndexableDisplayName from './IndexableDisplayName'; -import Toggle from '../Toggle'; +import Tooltip from './reach-ui/tooltip'; import styles from './ForgetBadge.css'; @@ -40,12 +40,11 @@ export default function ForgetBadge(props: Props): React.Node { 'Memo' ); - const onChange = () => {}; const title = '✨ This component has been auto-memoized by the React Compiler.'; return ( - + {innerView} - + ); } diff --git a/packages/react-devtools-shared/src/devtools/views/Components/InspectedElement.js b/packages/react-devtools-shared/src/devtools/views/Components/InspectedElement.js index 200f78586c51a..5596257fa5df5 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/InspectedElement.js +++ b/packages/react-devtools-shared/src/devtools/views/Components/InspectedElement.js @@ -29,6 +29,7 @@ import InspectedElementViewSourceButton from './InspectedElementViewSourceButton import useEditorURL from '../useEditorURL'; import styles from './InspectedElement.css'; +import Tooltip from './reach-ui/tooltip'; export type Props = {}; @@ -192,14 +193,15 @@ export default function InspectedElementWrapper(_: Props): React.Node { let strictModeBadge = null; if (element.isStrictModeNonCompliant) { strictModeBadge = ( - - - + + + + + ); } diff --git a/packages/react-devtools-shared/src/devtools/views/Components/NativeTagBadge.css b/packages/react-devtools-shared/src/devtools/views/Components/NativeTagBadge.css index 7188a53743432..cebc617e69cfc 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/NativeTagBadge.css +++ b/packages/react-devtools-shared/src/devtools/views/Components/NativeTagBadge.css @@ -1,11 +1,3 @@ -.Toggle { - display: flex; -} - -.Toggle > span { /* targets .ToggleContent */ - padding: 0; -} - .Badge { cursor: help; } diff --git a/packages/react-devtools-shared/src/devtools/views/Components/NativeTagBadge.js b/packages/react-devtools-shared/src/devtools/views/Components/NativeTagBadge.js index 118255b536a09..c092891ec9dd3 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/NativeTagBadge.js +++ b/packages/react-devtools-shared/src/devtools/views/Components/NativeTagBadge.js @@ -10,7 +10,7 @@ import * as React from 'react'; import Badge from './Badge'; -import Toggle from '../Toggle'; +import Tooltip from './reach-ui/tooltip'; import styles from './NativeTagBadge.css'; @@ -18,14 +18,13 @@ type Props = { nativeTag: number, }; -const noop = () => {}; const title = 'Unique identifier for the corresponding native component. React Native only.'; export default function NativeTagBadge({nativeTag}: Props): React.Node { return ( - + Tag {nativeTag} - + ); } diff --git a/packages/react-devtools-shared/src/devtools/views/ErrorBoundary/ReportNewIssue.js b/packages/react-devtools-shared/src/devtools/views/ErrorBoundary/ReportNewIssue.js index 360a6c232b072..f8dc401365dce 100644 --- a/packages/react-devtools-shared/src/devtools/views/ErrorBoundary/ReportNewIssue.js +++ b/packages/react-devtools-shared/src/devtools/views/ErrorBoundary/ReportNewIssue.js @@ -63,8 +63,7 @@ export default function ReportNewIssue({ className={styles.ReportLink} href={bugURL} rel="noopener noreferrer" - target="_blank" - title="Report bug"> + target="_blank"> Report this issue
diff --git a/packages/react-devtools-shared/src/devtools/views/ErrorBoundary/WorkplaceGroup.js b/packages/react-devtools-shared/src/devtools/views/ErrorBoundary/WorkplaceGroup.js index 1e04c304a743d..c72edc06f1c9a 100644 --- a/packages/react-devtools-shared/src/devtools/views/ErrorBoundary/WorkplaceGroup.js +++ b/packages/react-devtools-shared/src/devtools/views/ErrorBoundary/WorkplaceGroup.js @@ -25,8 +25,7 @@ export default function WorkplaceGroup(): React.Node { className={styles.ReportLink} href={REACT_DEVTOOLS_WORKPLACE_URL} rel="noopener noreferrer" - target="_blank" - title="Report bug"> + target="_blank"> Report this on Workplace
(Facebook employees only.)
diff --git a/packages/react-devtools-shared/src/devtools/views/Icon.js b/packages/react-devtools-shared/src/devtools/views/Icon.js index f65f331a12d44..f49bb4fd0380c 100644 --- a/packages/react-devtools-shared/src/devtools/views/Icon.js +++ b/packages/react-devtools-shared/src/devtools/views/Icon.js @@ -33,12 +33,14 @@ type Props = { className?: string, title?: string, type: IconType, + ... }; export default function Icon({ className = '', title = '', type, + ...props }: Props): React.Node { let pathData = null; let viewBox = '0 0 24 24'; @@ -102,6 +104,7 @@ export default function Icon({ return (