From 098d6f9bb1fd26f2d192db497992ab95b258ce55 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 27 Feb 2022 01:52:55 +0100 Subject: feat: Location bar actions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The buttons and the text field in the location bar shall now affect the BrowserView of the loaded service. Some error handling is still needed, e.g., when loading a web page fails due to a DNS error. Signed-off-by: Kristóf Marussy --- packages/shared/src/schemas/ServiceAction.ts | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 packages/shared/src/schemas/ServiceAction.ts (limited to 'packages/shared/src/schemas/ServiceAction.ts') diff --git a/packages/shared/src/schemas/ServiceAction.ts b/packages/shared/src/schemas/ServiceAction.ts new file mode 100644 index 0000000..a4a7049 --- /dev/null +++ b/packages/shared/src/schemas/ServiceAction.ts @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2021-2022 Kristóf Marussy + * + * This file is part of Sophie. + * + * Sophie is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { z } from 'zod'; + +export const ServiceAction = /* @__PURE__ */ (() => + z.union([ + z.object({ + action: z.literal('back'), + }), + z.object({ + action: z.literal('forward'), + }), + z.object({ + action: z.literal('reload'), + ignoreCache: z.boolean(), + }), + z.object({ + action: z.literal('stop'), + }), + z.object({ + action: z.literal('go-home'), + }), + z.object({ + action: z.literal('go'), + url: z.string(), + }), + ]))(); + +/* + eslint-disable-next-line @typescript-eslint/no-redeclare -- + Intentionally naming the type the same as the schema definition. +*/ +export type ServiceAction = z.infer; -- cgit v1.2.3-54-g00ecf