/**
* WordPress dependencies
*/
/**
* External dependencies
*/
import clsx from 'clsx';
/**
* Internal dependencies
*/
import './style.scss';
import { CssEditor } from './css';
import { JavaScriptEditor } from './javascript';
import { PhpEditor } from './php';
import type { Props } from './props';
export type CodeEditorProps = Props & { readonly withBorder?: boolean } & (
| { readonly language: 'javascript' | 'php' }
| {
readonly language: 'css';
readonly onChangeSelectedRule?: (
selectors?: ReadonlyArray< string >
) => void;
readonly focusedSelector?: string;
}
);
export const CodeEditor = ( {
language,
withBorder,
...props
}: CodeEditorProps ): JSX.Element => {
const className = clsx( {
'nab-code-editor': true,
'nab-code-editor--is-readonly': props.readOnly,
'nab-code-editor--with-border': !! withBorder,
[ props.className ?? '' ]: !! props.className,
} );
switch ( language ) {
case 'css':
return ;
case 'javascript':
return ;
case 'php':
return ;
}
};