Gebruik
De ChatPromptSubmit-component wordt gebruikt in de ChatPrompt -component om de prompt in te dienen. Het verwerkt automatisch de verschillende status-waarden om de chat te besturen.
Het breidt de Button component uit, zodat u elke eigenschap zoals color, variant, size, enz. Kunt doorgeven.
<template>
<UChatPrompt>
<UChatPromptSubmit />
</UChatPrompt>
</template>
footer-sleuf van de ChatPrompt component.Klaar
Als de status ready is, gebruikt u de color, variant en icon rekwisieten om de knop aan te passen. Standaard:
color="primary"variant="solid"icon="i-lucide-arrow-up"
<template>
<UChatPromptSubmit color="primary" variant="solid" icon="i-lucide-arrow-up" />
</template>Ingezonden
Als de status submitted is, gebruikt u de submitted-color, submitted-variant en submitted-icon rekwisieten om de knop aan te passen. Standaard:
submittedColor="neutral"submittedVariant="subtle"submittedIcon="i-lucide-square"
stop gebeurtenis wordt uitgezonden wanneer de gebruiker op de knop klikt.<template>
<UChatPromptSubmit
submitted-color="neutral"
submitted-variant="subtle"
submitted-icon="i-lucide-square"
status="submitted"
/>
</template>Streamen
Als de status streaming is, gebruikt u de streaming-color, streaming-variant en streaming-icon rekwisieten om de knop aan te passen. Standaard:
streamingColor="neutral"streamingVariant="subtle"streamingIcon="i-lucide-square"
stop-gebeurtenis wordt uitgezonden wanneer de gebruiker op de knop klikt.<template>
<UChatPromptSubmit
streaming-color="neutral"
streaming-variant="subtle"
streaming-icon="i-lucide-square"
status="streaming"
/>
</template>Fout
Als de status error is, gebruikt u de error-color, error-variant en error-icon rekwisieten om de knop aan te passen. Standaard:
errorColor="error"errorVariant="soft"errorIcon="i-lucide-rotate-ccw"
reload-gebeurtenis wordt uitgezonden wanneer de gebruiker op de knop klikt.<template>
<UChatPromptSubmit
error-color="error"
error-variant="soft"
error-icon="i-lucide-rotate-ccw"
status="error"
/>
</template>Voorbeelden
API
Props
| Prop | Default | Type |
|---|---|---|
as | 'button' | anyThe element or component this component should render as when not a link. |
status | 'ready' | "error" | "ready" | "submitted" | "streaming" |
icon | appConfig.ui.icons.arrowUp | anyThe icon displayed in the button when the status is |
color | 'primary' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"The color of the button when the status is |
variant | 'solid' | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid"The variant of the button when the status is |
streamingIcon | appConfig.ui.icons.stop | anyThe icon displayed in the button when the status is |
streamingColor | 'neutral' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"The color of the button when the status is |
streamingVariant | 'subtle' | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid"The variant of the button when the status is |
submittedIcon | appConfig.ui.icons.stop | anyThe icon displayed in the button when the status is |
submittedColor | 'neutral' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"The color of the button when the status is |
submittedVariant | 'subtle' | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid"The variant of the button when the status is |
errorIcon | appConfig.ui.icons.reload | anyThe icon displayed in the button when the status is |
errorColor | 'error' | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"The color of the button when the status is |
errorVariant | 'soft' | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid"The variant of the button when the status is |
autofocus | false | true | "true" | "false" | |
avatar | AvatarPropsDisplay an avatar on the left side. | |
loading | boolean When | |
loadingIcon | appConfig.ui.icons.loading | anyThe icon when the |
disabled | boolean | |
name | string | |
label | string | |
size | 'md' | "xs" | "sm" | "md" | "lg" | "xl" |
leading | boolean When | |
leadingIcon | anyDisplay an icon on the left side. | |
trailing | boolean When | |
trailingIcon | anyDisplay an icon on the right side. | |
type | 'button' | "reset" | "submit" | "button"The type of the button when not a link. |
activeColor | "error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral" | |
activeVariant | "link" | "outline" | "soft" | "subtle" | "ghost" | "solid" | |
square | boolean Render the button with equal padding on all sides. | |
block | boolean Render the button full width. | |
loadingAuto | boolean Set loading state automatically based on the | |
ui | { base?: SlotClass; } & { base?: SlotClass; label?: SlotClass; leadingIcon?: SlotClass; leadingAvatar?: SlotClass; leadingAvatarSize?: SlotClass; trailingIcon?: SlotClass; } |
Slots
| Slot | Type |
|---|---|
leading | { ui: object; } |
default | { ui: object; } |
trailing | { ui: object; } |
Uitzendt
| Event | Type |
|---|---|
stop | [event: MouseEvent] |
reload | [event: MouseEvent] |
Thema
export default defineAppConfig({
ui: {
chatPromptSubmit: {
slots: {
base: ''
}
}
}
})import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
chatPromptSubmit: {
slots: {
base: ''
}
}
}
})
]
})