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" && (
-
-
+
)}
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"
/>
>
)}