mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-31 12:51:35 +02:00
Unified access onboarding data collection pages GitOrigin-RevId: c56a3d52f749883eeb2302e22aaf6bdf1239160c
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import React, { forwardRef } from 'react'
|
|
import { Form, FormControlProps } from 'react-bootstrap'
|
|
import classnames from 'classnames'
|
|
|
|
interface DSFormControlProps extends FormControlProps {
|
|
prepend?: React.ReactNode
|
|
append?: React.ReactNode
|
|
}
|
|
|
|
const DSFormControl = forwardRef<HTMLInputElement, DSFormControlProps>(
|
|
({ prepend, append, className, ...props }, ref) => {
|
|
if (prepend || append) {
|
|
const wrapperClassNames = classnames(
|
|
'form-control-wrapper-ds form-control-wrapper-lg-ds',
|
|
{
|
|
'form-control-wrapper-disabled-ds': props.disabled,
|
|
}
|
|
)
|
|
|
|
const formControlClassNames = classnames('form-control-ds', className, {
|
|
'form-control-offset-start-ds': prepend,
|
|
'form-control-offset-end-ds': append,
|
|
})
|
|
|
|
return (
|
|
<div className={wrapperClassNames}>
|
|
{prepend && (
|
|
<span className="form-control-start-icon-ds">{prepend}</span>
|
|
)}
|
|
<Form.Control
|
|
{...props}
|
|
className={formControlClassNames}
|
|
ref={ref}
|
|
/>
|
|
{append && <span className="form-control-end-icon-ds">{append}</span>}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<Form.Control
|
|
ref={ref}
|
|
size="lg"
|
|
className={classnames('form-control-ds', className)}
|
|
{...props}
|
|
/>
|
|
)
|
|
}
|
|
)
|
|
DSFormControl.displayName = 'DSFormControl'
|
|
|
|
export default DSFormControl
|