Remove useToast everywhere

This commit is contained in:
Gregory Schier
2025-01-06 12:21:21 -08:00
parent ab55c2e0ce
commit 806a8eb801
14 changed files with 58 additions and 84 deletions

View File

@@ -29,8 +29,8 @@ import { useSyncWorkspaceChildModels } from '../hooks/useSyncWorkspaceChildModel
import { useSyncWorkspaceRequestTitle } from '../hooks/useSyncWorkspaceRequestTitle';
import { useSyncZoomSetting } from '../hooks/useSyncZoomSetting';
import { useSubscribeTemplateFunctions } from '../hooks/useTemplateFunctions';
import {useToast} from "../hooks/useToast";
import { useToggleCommandPalette } from '../hooks/useToggleCommandPalette';
import { showToast } from '../lib/toast';
export function GlobalHooks() {
useSyncModelStores();
@@ -58,9 +58,8 @@ export function GlobalHooks() {
useEnsureActiveCookieJar();
// Listen for toasts
const toast = useToast();
useListenToTauriEvent<ShowToastRequest>('show_toast', (event) => {
toast.show({ ...event.payload });
showToast({ ...event.payload });
});
// Trigger workspace sync operation when workspace files change

View File

@@ -1,11 +1,11 @@
import { useNavigate } from '@tanstack/react-router';
import type { GrpcRequest, HttpRequest } from '@yaakapp-internal/models';
import React, { useState } from 'react';
import { useToast } from '../hooks/useToast';
import { useUpdateAnyGrpcRequest } from '../hooks/useUpdateAnyGrpcRequest';
import { useUpdateAnyHttpRequest } from '../hooks/useUpdateAnyHttpRequest';
import { useWorkspaces } from '../hooks/useWorkspaces';
import { fallbackRequestName } from '../lib/fallbackRequestName';
import {showToast} from "../lib/toast";
import { Button } from './core/Button';
import { InlineCode } from './core/InlineCode';
import { Select } from './core/Select';
@@ -21,7 +21,6 @@ export function MoveToWorkspaceDialog({ onDone, request, activeWorkspaceId }: Pr
const workspaces = useWorkspaces();
const updateHttpRequest = useUpdateAnyHttpRequest();
const updateGrpcRequest = useUpdateAnyGrpcRequest();
const toast = useToast();
const navigate = useNavigate();
const [selectedWorkspaceId, setSelectedWorkspaceId] = useState<string>(activeWorkspaceId);
@@ -54,7 +53,7 @@ export function MoveToWorkspaceDialog({ onDone, request, activeWorkspaceId }: Pr
// Hide after a moment, to give time for request to disappear
setTimeout(onDone, 100);
toast.show({
showToast({
id: 'workspace-moved',
message: (
<>

View File

@@ -16,7 +16,6 @@ import { usePinnedHttpResponse } from '../hooks/usePinnedHttpResponse';
import { useRequestEditor, useRequestEditorEvent } from '../hooks/useRequestEditor';
import { useRequestUpdateKey } from '../hooks/useRequestUpdateKey';
import { useSendAnyHttpRequest } from '../hooks/useSendAnyHttpRequest';
import { useToast } from '../hooks/useToast';
import { useUpdateAnyHttpRequest } from '../hooks/useUpdateAnyHttpRequest';
import { deepEqualAtom } from '../lib/atoms';
import { languageFromContentType } from '../lib/contentType';
@@ -35,6 +34,7 @@ import {
BODY_TYPE_OTHER,
BODY_TYPE_XML,
} from '../lib/model_util';
import { showToast } from '../lib/toast';
import { BasicAuth } from './BasicAuth';
import { BearerAuth } from './BearerAuth';
import { BinaryFileEditor } from './BinaryFileEditor';
@@ -123,8 +123,6 @@ export const RequestPane = memo(function RequestPane({
[activeRequest, updateRequestAsync],
);
const toast = useToast();
const { urlParameterPairs, urlParametersKey } = useMemo(() => {
const placeholderNames = Array.from(activeRequest.url.matchAll(/\/(:[^/]+)/g)).map(
(m) => m[1] ?? '',
@@ -182,7 +180,7 @@ export const RequestPane = memo(function RequestPane({
const showMethodToast = (newMethod: string) => {
if (activeRequest.method.toLowerCase() === newMethod.toLowerCase()) return;
toast.show({
showToast({
id: 'switched-method',
message: (
<>
@@ -276,7 +274,6 @@ export const RequestPane = memo(function RequestPane({
activeRequestId,
handleContentTypeChange,
numParams,
toast,
updateRequest,
updateRequestAsync,
urlParameterPairs.length,

View File

@@ -1,7 +1,7 @@
import { AnimatePresence } from 'framer-motion';
import { useAtomValue } from 'jotai';
import React, { type ReactNode } from 'react';
import { toastsAtom, useToast } from '../hooks/useToast';
import { hideToast, toastsAtom } from '../lib/toast';
import { Toast, type ToastProps } from './core/Toast';
import { Portal } from './Portal';
@@ -18,7 +18,6 @@ export type PrivateToastEntry = ToastEntry & {
};
function ToastInstance({ id, message, timeout, ...props }: PrivateToastEntry) {
const toast = useToast();
return (
<Toast
open
@@ -26,7 +25,7 @@ function ToastInstance({ id, message, timeout, ...props }: PrivateToastEntry) {
{...props}
// We call onClose inside actions.hide instead of passing to toast so that
// it gets called from external close calls as well
onClose={() => toast.hide(id)}
onClose={() => hideToast(id)}
>
{message}
</Toast>