From 32f0d23de4da1721003cc332fc40a8ccff47abfb Mon Sep 17 00:00:00 2001 From: Francis Cao Date: Thu, 20 Jun 2024 23:26:36 -0700 Subject: [PATCH 1/6] fix null toString event data bug --- src/components/metrics/MetricCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/metrics/MetricCard.tsx b/src/components/metrics/MetricCard.tsx index 5b11156e..a5fd758e 100644 --- a/src/components/metrics/MetricCard.tsx +++ b/src/components/metrics/MetricCard.tsx @@ -37,7 +37,7 @@ export const MetricCard = ({ return (
{showLabel &&
{label}
} - + {props?.x?.to(x => formatValue(x))} {showChange && ( From b0c9197f2dbfab7fd07ab66f243696cec4f16539 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Fri, 21 Jun 2024 12:49:57 -0700 Subject: [PATCH 2/6] Fixed teams settings. --- next.config.js | 4 +++ src/app/(main)/teams/[teamId]/layout.tsx | 7 ++++- .../[teamId]/settings/TeamSettingsLayout.tsx | 29 +++++++++++++++++++ .../members/TeamMemberEditButton.tsx | 0 .../settings}/members/TeamMemberEditForm.tsx | 0 .../members/TeamMemberRemoveButton.tsx | 0 .../members/TeamMembersDataTable.tsx | 0 .../settings}/members/TeamMembersPage.tsx | 0 .../settings}/members/TeamMembersTable.tsx | 0 .../[teamId]/settings}/members/page.tsx | 0 .../settings}/team/TeamDeleteForm.tsx | 0 .../[teamId]/settings}/team/TeamDetails.tsx | 2 +- .../[teamId]/settings}/team/TeamEditForm.tsx | 0 .../[teamId]/settings}/team/TeamManage.tsx | 0 .../[teamId]/settings}/team/TeamPage.tsx | 0 .../[teamId]/settings}/team/page.tsx | 0 .../websites/TeamWebsiteRemoveButton.tsx | 0 .../websites/TeamWebsitesDataTable.tsx | 0 .../settings}/websites/TeamWebsitesPage.tsx | 0 .../settings}/websites/TeamWebsitesTable.tsx | 0 .../[teamId]/settings}/websites/page.tsx | 0 21 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 src/app/(main)/teams/[teamId]/settings/TeamSettingsLayout.tsx rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/members/TeamMemberEditButton.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/members/TeamMemberEditForm.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/members/TeamMemberRemoveButton.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/members/TeamMembersDataTable.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/members/TeamMembersPage.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/members/TeamMembersTable.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/members/page.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/team/TeamDeleteForm.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/team/TeamDetails.tsx (95%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/team/TeamEditForm.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/team/TeamManage.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/team/TeamPage.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/team/page.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/websites/TeamWebsiteRemoveButton.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/websites/TeamWebsitesDataTable.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/websites/TeamWebsitesPage.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/websites/TeamWebsitesTable.tsx (100%) rename src/app/(main)/{settings/teams/[teamId] => teams/[teamId]/settings}/websites/page.tsx (100%) diff --git a/next.config.js b/next.config.js index 7554e226..d7546d75 100644 --- a/next.config.js +++ b/next.config.js @@ -167,6 +167,10 @@ const config = { source: '/telemetry.js', destination: '/api/scripts/telemetry', }, + { + source: '/teams/:teamId/settings/:path*', + destination: '/teams/:teamId/settings/:path*', + }, { source: '/teams/:teamId/:path*', destination: '/:path*', diff --git a/src/app/(main)/teams/[teamId]/layout.tsx b/src/app/(main)/teams/[teamId]/layout.tsx index c804c746..e10cdb94 100644 --- a/src/app/(main)/teams/[teamId]/layout.tsx +++ b/src/app/(main)/teams/[teamId]/layout.tsx @@ -1,8 +1,13 @@ import TeamProvider from './TeamProvider'; import { Metadata } from 'next'; +import TeamSettingsLayout from './settings/TeamSettingsLayout'; export default function ({ children, params: { teamId } }) { - return {children}; + return ( + + {children} + + ); } export const metadata: Metadata = { diff --git a/src/app/(main)/teams/[teamId]/settings/TeamSettingsLayout.tsx b/src/app/(main)/teams/[teamId]/settings/TeamSettingsLayout.tsx new file mode 100644 index 00000000..f7df620a --- /dev/null +++ b/src/app/(main)/teams/[teamId]/settings/TeamSettingsLayout.tsx @@ -0,0 +1,29 @@ +'use client'; +import { ReactNode } from 'react'; +import { useMessages, useTeamUrl } from 'components/hooks'; +import MenuLayout from 'components/layout/MenuLayout'; + +export default function TeamSettingsLayout({ children }: { children: ReactNode }) { + const { formatMessage, labels } = useMessages(); + const { teamId } = useTeamUrl(); + + const items = [ + { + key: 'team', + label: formatMessage(labels.team), + url: `/teams/${teamId}/settings/team`, + }, + { + key: 'websites', + label: formatMessage(labels.websites), + url: `/teams/${teamId}/settings/websites`, + }, + { + key: 'members', + label: formatMessage(labels.members), + url: `/teams/${teamId}/settings/members`, + }, + ].filter(n => n); + + return {children}; +} diff --git a/src/app/(main)/settings/teams/[teamId]/members/TeamMemberEditButton.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditButton.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/members/TeamMemberEditButton.tsx rename to src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditButton.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/members/TeamMemberEditForm.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditForm.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/members/TeamMemberEditForm.tsx rename to src/app/(main)/teams/[teamId]/settings/members/TeamMemberEditForm.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/members/TeamMemberRemoveButton.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMemberRemoveButton.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/members/TeamMemberRemoveButton.tsx rename to src/app/(main)/teams/[teamId]/settings/members/TeamMemberRemoveButton.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/members/TeamMembersDataTable.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersDataTable.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/members/TeamMembersDataTable.tsx rename to src/app/(main)/teams/[teamId]/settings/members/TeamMembersDataTable.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/members/TeamMembersPage.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersPage.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/members/TeamMembersPage.tsx rename to src/app/(main)/teams/[teamId]/settings/members/TeamMembersPage.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/members/TeamMembersTable.tsx b/src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/members/TeamMembersTable.tsx rename to src/app/(main)/teams/[teamId]/settings/members/TeamMembersTable.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/members/page.tsx b/src/app/(main)/teams/[teamId]/settings/members/page.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/members/page.tsx rename to src/app/(main)/teams/[teamId]/settings/members/page.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/team/TeamDeleteForm.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamDeleteForm.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/team/TeamDeleteForm.tsx rename to src/app/(main)/teams/[teamId]/settings/team/TeamDeleteForm.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/team/TeamDetails.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamDetails.tsx similarity index 95% rename from src/app/(main)/settings/teams/[teamId]/team/TeamDetails.tsx rename to src/app/(main)/teams/[teamId]/settings/team/TeamDetails.tsx index 0c5fe991..70858ee4 100644 --- a/src/app/(main)/settings/teams/[teamId]/team/TeamDetails.tsx +++ b/src/app/(main)/teams/[teamId]/settings/team/TeamDetails.tsx @@ -5,7 +5,7 @@ import PageHeader from 'components/layout/PageHeader'; import { ROLES } from 'lib/constants'; import { useContext, useState } from 'react'; import { Flexbox, Item, Tabs } from 'react-basics'; -import TeamLeaveButton from '../../TeamLeaveButton'; +import TeamLeaveButton from 'app/(main)/settings/teams/TeamLeaveButton'; import TeamManage from './TeamManage'; import TeamEditForm from './TeamEditForm'; diff --git a/src/app/(main)/settings/teams/[teamId]/team/TeamEditForm.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/team/TeamEditForm.tsx rename to src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/team/TeamManage.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamManage.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/team/TeamManage.tsx rename to src/app/(main)/teams/[teamId]/settings/team/TeamManage.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/team/TeamPage.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamPage.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/team/TeamPage.tsx rename to src/app/(main)/teams/[teamId]/settings/team/TeamPage.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/team/page.tsx b/src/app/(main)/teams/[teamId]/settings/team/page.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/team/page.tsx rename to src/app/(main)/teams/[teamId]/settings/team/page.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/websites/TeamWebsiteRemoveButton.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsiteRemoveButton.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/websites/TeamWebsiteRemoveButton.tsx rename to src/app/(main)/teams/[teamId]/settings/websites/TeamWebsiteRemoveButton.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesDataTable.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesDataTable.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesDataTable.tsx rename to src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesDataTable.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesPage.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesPage.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesPage.tsx rename to src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesPage.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesTable.tsx b/src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/websites/TeamWebsitesTable.tsx rename to src/app/(main)/teams/[teamId]/settings/websites/TeamWebsitesTable.tsx diff --git a/src/app/(main)/settings/teams/[teamId]/websites/page.tsx b/src/app/(main)/teams/[teamId]/settings/websites/page.tsx similarity index 100% rename from src/app/(main)/settings/teams/[teamId]/websites/page.tsx rename to src/app/(main)/teams/[teamId]/settings/websites/page.tsx From 2109d3225eb9daa896a595c98714d0d711107756 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sat, 22 Jun 2024 16:23:06 -0700 Subject: [PATCH 3/6] Fixed team data not refreshing. --- src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx b/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx index fc192df1..c2029ca6 100644 --- a/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx +++ b/src/app/(main)/teams/[teamId]/settings/team/TeamEditForm.tsx @@ -11,7 +11,7 @@ import { } from 'react-basics'; import { getRandomChars } from 'next-basics'; import { useContext, useRef, useState } from 'react'; -import { useApi, useMessages } from 'components/hooks'; +import { useApi, useMessages, useModified } from 'components/hooks'; import { TeamContext } from 'app/(main)/teams/[teamId]/TeamProvider'; const generateId = () => getRandomChars(16); @@ -26,12 +26,14 @@ export function TeamEditForm({ teamId, allowEdit }: { teamId: string; allowEdit? const ref = useRef(null); const [accessCode, setAccessCode] = useState(team.accessCode); const { showToast } = useToasts(); + const { touch } = useModified(); const cloudMode = !!process.env.cloudMode; const handleSubmit = async (data: any) => { mutate(data, { onSuccess: async () => { ref.current.reset(data); + touch('teams'); showToast({ message: formatMessage(messages.saved), variant: 'success' }); }, }); From 7342d52c68955119ebd76a30f3ddce783749bb0a Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sun, 23 Jun 2024 21:59:50 -0700 Subject: [PATCH 4/6] Fixed team settings not found. --- next.config.js | 6 +----- .../teams/[teamId]/settings/websites/[websiteId]/page.tsx | 5 +++++ 2 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 src/app/(main)/teams/[teamId]/settings/websites/[websiteId]/page.tsx diff --git a/next.config.js b/next.config.js index d7546d75..acb83a92 100644 --- a/next.config.js +++ b/next.config.js @@ -168,11 +168,7 @@ const config = { destination: '/api/scripts/telemetry', }, { - source: '/teams/:teamId/settings/:path*', - destination: '/teams/:teamId/settings/:path*', - }, - { - source: '/teams/:teamId/:path*', + source: '/teams/:teamId/:path((?!settings).*)*', destination: '/:path*', }, ]; diff --git a/src/app/(main)/teams/[teamId]/settings/websites/[websiteId]/page.tsx b/src/app/(main)/teams/[teamId]/settings/websites/[websiteId]/page.tsx new file mode 100644 index 00000000..a6895296 --- /dev/null +++ b/src/app/(main)/teams/[teamId]/settings/websites/[websiteId]/page.tsx @@ -0,0 +1,5 @@ +import Page from 'app/(main)/settings/websites/[websiteId]/page'; + +export default function ({ params }) { + return ; +} From 0b0cd9e272a493c00c0a997b016b58501c57e25b Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Mon, 24 Jun 2024 09:29:42 -0700 Subject: [PATCH 5/6] Fixed overflowing journey label. --- src/app/(main)/reports/journey/JourneyView.module.css | 2 +- src/app/(main)/reports/journey/JourneyView.tsx | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/app/(main)/reports/journey/JourneyView.module.css b/src/app/(main)/reports/journey/JourneyView.module.css index 0975d2c0..908f02cb 100644 --- a/src/app/(main)/reports/journey/JourneyView.module.css +++ b/src/app/(main)/reports/journey/JourneyView.module.css @@ -121,7 +121,7 @@ } .name { - font-weight: 500; + max-width: 200px; } .count { diff --git a/src/app/(main)/reports/journey/JourneyView.tsx b/src/app/(main)/reports/journey/JourneyView.tsx index 73338c83..ae980a6e 100644 --- a/src/app/(main)/reports/journey/JourneyView.tsx +++ b/src/app/(main)/reports/journey/JourneyView.tsx @@ -1,5 +1,5 @@ import { useContext, useMemo, useState } from 'react'; -import { TooltipPopup } from 'react-basics'; +import { TextOverflow, TooltipPopup } from 'react-basics'; import { firstBy } from 'thenby'; import classNames from 'classnames'; import { useEscapeKey, useMessages } from 'components/hooks'; @@ -191,7 +191,9 @@ export default function JourneyView() { })} onClick={() => handleClick(name, columnIndex, paths)} > -
{name}
+
+ {name} +
{formatLongNumber(nodeCount)} From 05e4555334639953e376f3537b396916d2c1bb59 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Tue, 25 Jun 2024 09:31:02 -0700 Subject: [PATCH 6/6] Bump version v2.12.1. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7f5c7c48..d002388f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "umami", - "version": "2.12.0", + "version": "2.12.1", "description": "A simple, fast, privacy-focused alternative to Google Analytics.", "author": "Umami Software, Inc. ", "license": "MIT",