onClick(true)}>
diff --git a/frontend/app/components/Dashboard/components/DashboardList/DashboardList.tsx b/frontend/app/components/Dashboard/components/DashboardList/DashboardList.tsx
index 56c73b692..6be30c7b5 100644
--- a/frontend/app/components/Dashboard/components/DashboardList/DashboardList.tsx
+++ b/frontend/app/components/Dashboard/components/DashboardList/DashboardList.tsx
@@ -30,7 +30,7 @@ function DashboardList({ siteId }: { siteId: string }) {
title: 'Title',
dataIndex: 'name',
width: '25%',
- render: (t) =>
{t}
,
+ render: (t) =>
{t}
,
},
{
title: 'Last Modified',
@@ -46,6 +46,7 @@ function DashboardList({ siteId }: { siteId: string }) {
width: '16.67%',
sorter: (a, b) => a.owner?.localeCompare(b.owner),
sortDirections: ['ascend', 'descend'],
+ render: (owner) =>
{owner}
,
},
{
title: (
@@ -63,7 +64,7 @@ function DashboardList({ siteId }: { siteId: string }) {
width: '16.67%',
dataIndex: 'isPublic',
render: (isPublic: boolean) => (
-
:
}>
+
:
} bordered={false} className='rounded-lg'>
{isPublic ? 'Team' : 'Private'}
),
@@ -103,16 +104,16 @@ function DashboardList({ siteId }: { siteId: string }) {
return (
list.length === 0 && !dashboardStore.filter.showMine ? (
- }
- imageStyle={{
- width: imageDimensions.width,
- height: imageDimensions.height,
- margin: 'auto',
- padding: '2rem 0'
- }}
- description={emptyDescription}
- />
+ }
+ imageStyle={{
+ width: imageDimensions.width,
+ height: imageDimensions.height,
+ margin: 'auto',
+ padding: '2rem 0'
+ }}
+ description={emptyDescription}
+ />
) : (
)
);
-
}
export default connect((state: any) => ({
diff --git a/frontend/app/components/Dashboard/components/DashboardList/NewDashModal/SelectCard.tsx b/frontend/app/components/Dashboard/components/DashboardList/NewDashModal/SelectCard.tsx
index c200c4a82..bdc5dd0e6 100644
--- a/frontend/app/components/Dashboard/components/DashboardList/NewDashModal/SelectCard.tsx
+++ b/frontend/app/components/Dashboard/components/DashboardList/NewDashModal/SelectCard.tsx
@@ -1,5 +1,6 @@
-import React, { useMemo } from 'react';
+import React, { useMemo, useState, useEffect } from 'react';
import { Button, Input, Segmented, Space } from 'antd';
+import { Info } from 'lucide-react';
import { CARD_LIST, CARD_CATEGORIES, CardType } from './ExampleCards';
import { useStore } from 'App/mstore';
import Option from './Option';
@@ -21,6 +22,15 @@ const SelectCard: React.FC
= (props: SelectCardProps) => {
const { metricStore, dashboardStore } = useStore();
const dashboardId = window.location.pathname.split('/')[3];
const [libraryQuery, setLibraryQuery] = React.useState('');
+ const [headerText, setHeaderText] = useState('');
+
+ useEffect(() => {
+ if (dashboardId) {
+ setHeaderText(isLibrary ? 'Your Library' : 'Create Card');
+ } else {
+ setHeaderText('Select a card template to start your dashboard');
+ }
+ }, [dashboardId, isLibrary]);
const handleCardSelection = (card: string) => {
metricStore.init();
@@ -29,7 +39,7 @@ const SelectCard: React.FC = (props: SelectCardProps) => {
const cardData: any = {
metricType: selectedCard.cardType,
name: selectedCard.title,
- metricOf: selectedCard.metricOf
+ metricOf: selectedCard.metricOf,
};
if (selectedCard.cardType === FUNNEL) {
@@ -43,14 +53,16 @@ const SelectCard: React.FC = (props: SelectCardProps) => {
};
const cardItems = useMemo(() => {
- return CARD_LIST.filter((card) => card.category === selected && (!card.isEnterprise || card.isEnterprise && isEnterprise))
+ return CARD_LIST.filter((card) => card.category === selected && (!card.isEnterprise || (card.isEnterprise && isEnterprise)))
.map((card) => (
-
+
));
}, [selected]);
@@ -73,18 +85,22 @@ const SelectCard: React.FC = (props: SelectCardProps) => {
return (
<>
-
+
- {dashboardId ? (isLibrary ? 'Your Library' : 'Create Card') : 'Select a template to create a card'}
+ {headerText}
+ {headerText === 'Select a card template to start your dashboard' && (
+
+ Following card previews are based on mock data for illustrative purposes only.
+
+ )}
{isLibrary && (
- {selectedCards.length > 0 ? (
+ {selectedCards.length > 0 && (
- ) : ''}
-
+ )}
setLibraryQuery(value.target.value)}
@@ -93,15 +109,17 @@ const SelectCard: React.FC = (props: SelectCardProps) => {
)}
-
{!isLibrary && }
-
- {isLibrary ?
- :
- }
+ {isLibrary ? (
+
+ ) : (
+
+ )}
>
);
};
@@ -115,11 +133,11 @@ const CategorySelector: React.FC = ({ setSelected, select
({
label: ,
- value: key
+ value: key,
}))}
value={selected}
onChange={setSelected}
- className="w-fit"
+ className="w-fit shadow-sm"
/>
);
diff --git a/frontend/app/components/Dashboard/components/WidgetView/CardViewMenu.tsx b/frontend/app/components/Dashboard/components/WidgetView/CardViewMenu.tsx
index ff422216a..bea20faf6 100644
--- a/frontend/app/components/Dashboard/components/WidgetView/CardViewMenu.tsx
+++ b/frontend/app/components/Dashboard/components/WidgetView/CardViewMenu.tsx
@@ -40,9 +40,9 @@ const CardViewMenu = () => {
icon: ,
onClick: () => {
Modal.confirm({
- title: 'Are you sure you want to remove this card?',
+ title: 'Confirm Card Deletion',
icon: null,
- // content: 'Bla bla ...',
+ content:'Are you sure you want to remove this card? This action is permanent and cannot be undone.',
footer: (_, {OkBtn, CancelBtn}) => (
<>
diff --git a/frontend/app/components/Dashboard/components/WidgetWrapper/CardMenu.tsx b/frontend/app/components/Dashboard/components/WidgetWrapper/CardMenu.tsx
index 90426a56c..39e22ad6e 100644
--- a/frontend/app/components/Dashboard/components/WidgetWrapper/CardMenu.tsx
+++ b/frontend/app/components/Dashboard/components/WidgetWrapper/CardMenu.tsx
@@ -21,7 +21,7 @@ function CardMenu({card}: any) {
},
{
key: 'hide',
- label: 'Remove',
+ label: 'Remove from Dashboard',
icon: ,
},
];
diff --git a/frontend/app/components/shared/FetchDetailsModal/components/FetchBasicDetails/FetchBasicDetails.tsx b/frontend/app/components/shared/FetchDetailsModal/components/FetchBasicDetails/FetchBasicDetails.tsx
index 479379b8e..601aa5520 100644
--- a/frontend/app/components/shared/FetchDetailsModal/components/FetchBasicDetails/FetchBasicDetails.tsx
+++ b/frontend/app/components/shared/FetchDetailsModal/components/FetchBasicDetails/FetchBasicDetails.tsx
@@ -21,17 +21,17 @@ function FetchBasicDetails({ resource, timestamp }: Props) {
return (
-
Name
-
+
Name
+
{resource.url}
-
+
-
Type
-
+
Type
+
{resource.type}
-
+
{resource.method && (
diff --git a/frontend/app/components/shared/FetchDetailsModal/components/Headers/Headers.tsx b/frontend/app/components/shared/FetchDetailsModal/components/Headers/Headers.tsx
index 2a3d4e830..2351a4435 100644
--- a/frontend/app/components/shared/FetchDetailsModal/components/Headers/Headers.tsx
+++ b/frontend/app/components/shared/FetchDetailsModal/components/Headers/Headers.tsx
@@ -13,8 +13,8 @@ function Headers(props: Props) {
-
- No data available
+
+ No data available
}
size="small"
diff --git a/frontend/app/components/ui/ItemMenu/ItemMenu.tsx b/frontend/app/components/ui/ItemMenu/ItemMenu.tsx
index 910984614..6a1e23179 100644
--- a/frontend/app/components/ui/ItemMenu/ItemMenu.tsx
+++ b/frontend/app/components/ui/ItemMenu/ItemMenu.tsx
@@ -1,6 +1,6 @@
import React from "react";
import { Icon, Popover, Tooltip } from "UI";
-import { Dropdown, Menu, Button } from "antd";
+import { Dropdown, Menu, Button} from "antd";
import {EllipsisVertical} from 'lucide-react';
import styles from "./itemMenu.module.css";
import cn from "classnames";
@@ -96,28 +96,30 @@ export default class ItemMenu extends React.PureComponent {
)}
>
- {
+ this.menuBtnRef = ref;
+ }}
+ className={cn("rounded-full flex items-center justify-center")}
+ role="button"
+ >
+
+
+ )}
+
+
);
}