webui : Replace alert and confirm with custom modals. (#13711)

* Replace alert and confirm with custom modals. This is needed as Webview in VS Code doesn't permit alert and confirm for security reasons.

* use Modal Provider to simplify the use of confirm and alert modals.

* Increase the z index of the modal dialogs.

* Update index.html.gz

* also add showPrompt

* rebuild

---------

Co-authored-by: igardev <ivailo.gardev@akros.ch>
Co-authored-by: Xuan Son Nguyen <son@huggingface.co>
This commit is contained in:
igardev
2025-05-31 12:56:08 +03:00
committed by GitHub
parent 3f55f781f1
commit c7e0a2054b
5 changed files with 180 additions and 22 deletions

View File

@@ -14,6 +14,7 @@ import {
import { BtnWithTooltips } from '../utils/common';
import { useAppContext } from '../utils/app.context';
import toast from 'react-hot-toast';
import { useModals } from './ModalProvider';
export default function Sidebar() {
const params = useParams();
@@ -38,6 +39,7 @@ export default function Sidebar() {
StorageUtils.offConversationChanged(handleConversationChange);
};
}, []);
const { showConfirm, showPrompt } = useModals();
const groupedConv = useMemo(
() => groupConversationsByDate(conversations),
@@ -130,7 +132,7 @@ export default function Sidebar() {
onSelect={() => {
navigate(`/chat/${conv.id}`);
}}
onDelete={() => {
onDelete={async () => {
if (isGenerating(conv.id)) {
toast.error(
'Cannot delete conversation while generating'
@@ -138,7 +140,7 @@ export default function Sidebar() {
return;
}
if (
window.confirm(
await showConfirm(
'Are you sure to delete this conversation?'
)
) {
@@ -167,14 +169,14 @@ export default function Sidebar() {
document.body.removeChild(a);
URL.revokeObjectURL(url);
}}
onRename={() => {
onRename={async () => {
if (isGenerating(conv.id)) {
toast.error(
'Cannot rename conversation while generating'
);
return;
}
const newName = window.prompt(
const newName = await showPrompt(
'Enter new name for the conversation',
conv.name
);