extended refer

This commit is contained in:
Nate Kelley 2025-09-26 12:11:41 -06:00
parent f4102880e5
commit 9f4f195280
No known key found for this signature in database
GPG Key ID: FD90372AB8D98B4F
4 changed files with 27 additions and 12 deletions

View File

@ -59,6 +59,20 @@ export const ShareMenuContentEmbedFooter = ({
openSuccessMessage('Succuessfully published');
};
const text = useMemo(() => {
if (assetType === 'metric_file') {
return 'Your metric currently isnt published.';
} else if (assetType === 'dashboard_file') {
return 'Your dashboard currently isnt published.';
} else if (assetType === 'chat') {
return 'Your chat currently isnt published.';
} else if (assetType === 'report_file') {
return 'Your report currently isnt published.';
} else {
return 'Your item currently isnt published.';
}
}, [assetType]);
return (
<div className="bg-item-hover flex justify-start overflow-hidden rounded-b px-3 py-2.5">
<Text variant="secondary" className="text-xs!">

View File

@ -28,8 +28,8 @@ export interface InputTextAreaProps
onPressEnter?: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
}
export interface InputTextAreaRef {
forceRecalculateHeight: () => void;
export interface InputTextAreaRef extends HTMLTextAreaElement {
forceRecalculateHeight?: () => void;
}
export const InputTextArea = React.forwardRef<InputTextAreaRef, InputTextAreaProps>(
@ -48,9 +48,11 @@ export const InputTextArea = React.forwardRef<InputTextAreaRef, InputTextAreaPro
) => {
const textareaRef = useRef<HTMLTextAreaElement | null>(null);
useImperativeHandle(
ref,
() => ({
useImperativeHandle(ref, () => {
if (!textareaRef.current) {
return null as unknown as InputTextAreaRef;
}
return Object.assign(textareaRef.current, {
forceRecalculateHeight: () => {
if (textareaRef.current) {
// Force a recalculation by triggering an input event
@ -58,9 +60,8 @@ export const InputTextArea = React.forwardRef<InputTextAreaRef, InputTextAreaPro
textareaRef.current.dispatchEvent(event);
}
},
}),
[]
);
});
}, []);
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
if (e.key === 'Enter') {

View File

@ -4,7 +4,7 @@ import { cn } from '@/lib/classMerge';
import { Button } from '../buttons/Button';
import ShapeSquare from '../icons/NucleoIconFilled/shape-square';
import { ArrowUp } from '../icons/NucleoIconOutlined';
import { InputTextArea, type InputTextAreaProps } from './InputTextArea';
import { InputTextArea, type InputTextAreaProps, type InputTextAreaRef } from './InputTextArea';
const inputTextAreaButtonVariants = cva(
'relative flex flex-col w-full items-center overflow-visible rounded-xl cursor-text border border-border transition-all duration-200',
@ -29,7 +29,7 @@ export interface InputTextAreaButtonProps extends Omit<InputTextAreaProps, 'vari
inputClassName?: string;
}
export const InputTextAreaButton = forwardRef<HTMLTextAreaElement, InputTextAreaButtonProps>(
export const InputTextAreaButton = forwardRef<InputTextAreaRef, InputTextAreaButtonProps>(
(
{
className,
@ -51,7 +51,7 @@ export const InputTextAreaButton = forwardRef<HTMLTextAreaElement, InputTextArea
) => {
const onSubmitPreflight = () => {
if (disabled) return;
const text = (textRef as React.RefObject<HTMLTextAreaElement | null>).current?.value || '';
const text = (textRef as React.RefObject<InputTextAreaRef | null>).current?.value || '';
onSubmit(text);
};

View File

@ -44,7 +44,7 @@ export const DashboardEditTitles: React.FC<{
useEffect(() => {
if (debouncedWidth) {
inputTextAreaRef.current?.forceRecalculateHeight();
inputTextAreaRef.current?.forceRecalculateHeight?.();
}
}, [debouncedWidth]);