diff --git a/src/api/ChatButtons.tsx b/src/api/ChatButtons.tsx index 2fea24d3d..046f975bb 100644 --- a/src/api/ChatButtons.tsx +++ b/src/api/ChatButtons.tsx @@ -80,15 +80,23 @@ export type ChatBarButtonFactory = (props: ChatBarProps & { isMainChat: boolean; const buttonFactories = new Map(); const logger = new Logger("ChatButtons"); -export function _injectButtons(buttons: ReactNode[], props: ChatBarProps) { +export function _injectButtons(buttons: { key: string, node: ReactNode; }[], order: Record, props: ChatBarProps) { if (props.disabled) return; + let anchorIndex = -100; + let currentOrder = anchorIndex - 1; + for (const [key, Button] of buttonFactories) { - buttons.push( - logger.error(`Failed to render ${key}`, e.error)}> + order[key] = anchorIndex; + order.submit && (order.submit = ++currentOrder); + anchorIndex = currentOrder + 1; + + buttons.push({ + key, + node: logger.error(`Failed to render ${key}`, e.error)}>