From 3f12a74f10ee226297fa1f71775fb9275f069459 Mon Sep 17 00:00:00 2001 From: Ainvoner <2538825+ainvoner@users.noreply.github.com> Date: Thu, 9 May 2024 12:53:13 +0300 Subject: [PATCH] fix(console): open link icon does not work (#6447) resolves: https://github.com/winglang/wing/issues/6227 ## Checklist - [ ] Title matches [Winglang's style guide](https://www.winglang.io/contributing/start-here/pull_requests#how-are-pull-request-titles-formatted) - [ ] Description explains motivation and solution - [ ] Tests added (always) - [ ] Docs updated (only required for features) - [ ] Added `pr/e2e-full` label if this feature requires end-to-end testing *By submitting this pull request, I confirm that my contribution is made under the terms of the [Wing Cloud Contribution License](https://github.com/winglang/wing/blob/main/CONTRIBUTION_LICENSE.md)*. --- .../app/test/cloud.website/index.test.ts | 4 --- .../console/design-system/src/attribute.tsx | 27 +++++++++++++++++-- .../src/features/redis-interaction-view.tsx | 4 +-- .../features/unsupported-interaction-view.tsx | 10 +------ .../src/features/website-interaction-view.tsx | 4 +-- .../ui/src/ui/unsupported-interaction.tsx | 4 +-- .../console/ui/src/ui/website-interaction.tsx | 19 +++---------- 7 files changed, 33 insertions(+), 39 deletions(-) diff --git a/apps/wing-console/console/app/test/cloud.website/index.test.ts b/apps/wing-console/console/app/test/cloud.website/index.test.ts index ac1857f991d..2b3ebfed04b 100644 --- a/apps/wing-console/console/app/test/cloud.website/index.test.ts +++ b/apps/wing-console/console/app/test/cloud.website/index.test.ts @@ -6,9 +6,5 @@ import { getResourceNode } from "../helpers.js"; describe(`${__dirname}/main.w`, () => { test.skip("open website", async ({ page }) => { await getResourceNode(page, "root/Default/Website").click(); - - // not working when app mode is not "local" - // const url = await page.getByTestId("cloud.website:url").inputValue(); - //expect(url).toMatch(/http:\/\/127.0.0.1:\d+/); }); }); diff --git a/apps/wing-console/console/design-system/src/attribute.tsx b/apps/wing-console/console/design-system/src/attribute.tsx index e9a933aa880..e2344df3859 100644 --- a/apps/wing-console/console/design-system/src/attribute.tsx +++ b/apps/wing-console/console/design-system/src/attribute.tsx @@ -1,3 +1,4 @@ +import { ArrowTopRightOnSquareIcon } from "@heroicons/react/24/solid"; import classNames from "classnames"; import type { PropsWithChildren } from "react"; import { useId } from "react"; @@ -42,9 +43,31 @@ export const Attribute = ({ {name} {value !== undefined && type === "url" && ( -
- +
+ {value} +
)} diff --git a/apps/wing-console/console/ui/src/features/redis-interaction-view.tsx b/apps/wing-console/console/ui/src/features/redis-interaction-view.tsx index f2e99de0d7e..6d6565dea87 100644 --- a/apps/wing-console/console/ui/src/features/redis-interaction-view.tsx +++ b/apps/wing-console/console/ui/src/features/redis-interaction-view.tsx @@ -1,7 +1,6 @@ import { createPersistentState } from "@wingconsole/use-persistent-state"; import { memo, useCallback } from "react"; -import { useOpenExternal } from "../services/use-open-external.js"; import { useRedis } from "../services/use-redis.js"; import { useTerminalHistory } from "../shared/use-terminal-history.js"; import { RedisInteraction } from "../ui/redis-interaction.js"; @@ -28,7 +27,6 @@ export const RedisInteractionView = memo(({ resourcePath }: RedisViewProps) => { useState: usePersistentState, }); - const { open } = useOpenExternal(); const { isLoading, redisUrl, execCommand } = useRedis({ resourcePath }); const executeCommand = useCallback( @@ -41,7 +39,7 @@ export const RedisInteractionView = memo(({ resourcePath }: RedisViewProps) => { switch (command.toLowerCase()) { case "help": { - open(REDIS_HELP_URL); + window.open(REDIS_HELP_URL, "_blank"); updateTerminalHistory([ { type: "message", message: command }, { diff --git a/apps/wing-console/console/ui/src/features/unsupported-interaction-view.tsx b/apps/wing-console/console/ui/src/features/unsupported-interaction-view.tsx index 9978f4ee6a3..c4138f81bcf 100644 --- a/apps/wing-console/console/ui/src/features/unsupported-interaction-view.tsx +++ b/apps/wing-console/console/ui/src/features/unsupported-interaction-view.tsx @@ -1,6 +1,5 @@ import { memo } from "react"; -import { useOpenExternal } from "../services/use-open-external.js"; import { UnsupportedInteraction } from "../ui/unsupported-interaction.js"; export interface UnsupportedInteractionViewProps { @@ -9,13 +8,6 @@ export interface UnsupportedInteractionViewProps { export const UnsupportedInteractionView = memo( ({ resourceType }: UnsupportedInteractionViewProps) => { - const { open } = useOpenExternal(); - - return ( - - ); + return ; }, ); diff --git a/apps/wing-console/console/ui/src/features/website-interaction-view.tsx b/apps/wing-console/console/ui/src/features/website-interaction-view.tsx index 4f71a93c2d3..64b77b6b0ae 100644 --- a/apps/wing-console/console/ui/src/features/website-interaction-view.tsx +++ b/apps/wing-console/console/ui/src/features/website-interaction-view.tsx @@ -1,7 +1,6 @@ import { memo, useContext } from "react"; import { AppContext } from "../AppContext.js"; -import { useOpenExternal } from "../services/use-open-external.js"; import { useWebsite } from "../services/use-website.js"; import { WebsiteInteraction } from "../ui/website-interaction.js"; @@ -11,9 +10,8 @@ export interface WebsiteInteractionViewProps { export const WebsiteInteractionView = memo( ({ resourcePath }: WebsiteInteractionViewProps) => { const { appMode } = useContext(AppContext); - const { open } = useOpenExternal(); const { url } = useWebsite({ resourcePath }); - return ; + return ; }, ); diff --git a/apps/wing-console/console/ui/src/ui/unsupported-interaction.tsx b/apps/wing-console/console/ui/src/ui/unsupported-interaction.tsx index 43d147f6187..aebd735194d 100644 --- a/apps/wing-console/console/ui/src/ui/unsupported-interaction.tsx +++ b/apps/wing-console/console/ui/src/ui/unsupported-interaction.tsx @@ -4,14 +4,12 @@ import classNames from "classnames"; export interface UnsupportedInteractionProps { resourceType: string; - onOpenIssueClick: (url: string) => void; } const newIssueUrl = "https://github.com/winglang/wing/issues/new/choose"; export const UnsupportedInteraction = ({ resourceType, - onOpenIssueClick, }: UnsupportedInteractionProps) => { const { theme } = useTheme(); @@ -38,7 +36,7 @@ export const UnsupportedInteraction = ({
diff --git a/apps/wing-console/console/ui/src/ui/website-interaction.tsx b/apps/wing-console/console/ui/src/ui/website-interaction.tsx index 3899181f5c1..3a0bfebcd07 100644 --- a/apps/wing-console/console/ui/src/ui/website-interaction.tsx +++ b/apps/wing-console/console/ui/src/ui/website-interaction.tsx @@ -1,20 +1,15 @@ -import { ArrowTopRightOnSquareIcon } from "@heroicons/react/24/solid"; -import { Attribute, useTheme } from "@wingconsole/design-system"; -import classNames from "classnames"; +import { Attribute } from "@wingconsole/design-system"; import type { AppMode } from "../AppContext.js"; export interface WebsiteInteractionProps { url: string; appMode: AppMode; - onUrlClick: (url: string) => void; } export const WebsiteInteraction = ({ appMode, url, - onUrlClick, }: WebsiteInteractionProps) => { - const { theme } = useTheme(); return (
@@ -22,17 +17,11 @@ export const WebsiteInteraction = ({ <> - onUrlClick(url)} - data-testid="cloud.website:open-url" + dataTestId="cloud.website:open-url" /> )}