/**
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
* SPDX-License-Identifier: MIT
*/
import React, { useMemo } from 'react';
import { Input } from '@douyinfe/semi-ui';
import { useTypeManager } from '@/plugins';
import { PropsType, Strategy as ConstantInputStrategy } from './types';
export { type ConstantInputStrategy };
export function ConstantInput(props: PropsType) {
const { value, onChange, schema, strategies, fallbackRenderer, readonly, ...rest } = props;
const typeManager = useTypeManager();
const Renderer = useMemo(() => {
const strategy = (strategies || []).find((_strategy) => _strategy.hit(schema));
if (!strategy) {
return typeManager.getTypeBySchema(schema)?.ConstantRenderer;
}
return strategy?.Renderer;
}, [strategies, schema, typeManager]);
if (!Renderer) {
if (fallbackRenderer) {
return React.createElement(fallbackRenderer, {
value,
onChange,
readonly,
schema,
...rest,
});
}
return ;
}
return (
);
}