Save name after website select. Fixed types.

This commit is contained in:
Mike Cao 2025-10-05 15:34:37 -07:00
parent 3496952769
commit c5994e5eb6
19 changed files with 29 additions and 22 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "@umami/components", "name": "@umami/components",
"version": "0.127.0", "version": "0.128.0",
"description": "Umami React components.", "description": "Umami React components.",
"author": "Mike Cao <mike@mikecao.com>", "author": "Mike Cao <mike@mikecao.com>",
"license": "MIT", "license": "MIT",

View file

@ -5,7 +5,7 @@ import { ReactQueryOptions } from '@/lib/types';
export function useEventDataEventsQuery(websiteId: string, options?: ReactQueryOptions) { export function useEventDataEventsQuery(websiteId: string, options?: ReactQueryOptions) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery({ return useQuery({

View file

@ -5,7 +5,7 @@ import { ReactQueryOptions } from '@/lib/types';
export function useEventDataPropertiesQuery(websiteId: string, options?: ReactQueryOptions) { export function useEventDataPropertiesQuery(websiteId: string, options?: ReactQueryOptions) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery<any>({ return useQuery<any>({

View file

@ -5,7 +5,7 @@ import { ReactQueryOptions } from '@/lib/types';
export function useEventDataQuery(websiteId: string, eventId: string, options?: ReactQueryOptions) { export function useEventDataQuery(websiteId: string, eventId: string, options?: ReactQueryOptions) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const params = useFilterParameters(); const params = useFilterParameters();
return useQuery({ return useQuery({

View file

@ -10,7 +10,7 @@ export function useEventDataValuesQuery(
options?: ReactQueryOptions, options?: ReactQueryOptions,
) { ) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery<any>({ return useQuery<any>({

View file

@ -10,7 +10,7 @@ export function useResultQuery<T = any>(
) { ) {
const { websiteId, ...parameters } = params; const { websiteId, ...parameters } = params;
const { post, useQuery } = useApi(); const { post, useQuery } = useApi();
const { startDate, endDate, timezone } = useDateParameters(websiteId); const { startDate, endDate, timezone } = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery<T>({ return useQuery<T>({

View file

@ -5,7 +5,7 @@ import { ReactQueryOptions } from '@/lib/types';
export function useSessionDataPropertiesQuery(websiteId: string, options?: ReactQueryOptions) { export function useSessionDataPropertiesQuery(websiteId: string, options?: ReactQueryOptions) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery<any>({ return useQuery<any>({

View file

@ -9,7 +9,7 @@ export function useSessionDataValuesQuery(
options?: ReactQueryOptions, options?: ReactQueryOptions,
) { ) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery<any>({ return useQuery<any>({

View file

@ -15,7 +15,7 @@ export function useWebsiteEventsQuery(
options?: ReactQueryOptions, options?: ReactQueryOptions,
) { ) {
const { get } = useApi(); const { get } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return usePagedQuery({ return usePagedQuery({

View file

@ -5,7 +5,7 @@ import { ReactQueryOptions } from '@/lib/types';
export function useWebsiteEventsSeriesQuery(websiteId: string, options?: ReactQueryOptions) { export function useWebsiteEventsSeriesQuery(websiteId: string, options?: ReactQueryOptions) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery({ return useQuery({

View file

@ -19,7 +19,7 @@ export function useWebsiteExpandedMetricsQuery(
options?: ReactQueryOptions<WebsiteExpandedMetricsData>, options?: ReactQueryOptions<WebsiteExpandedMetricsData>,
) { ) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery<WebsiteExpandedMetricsData>({ return useQuery<WebsiteExpandedMetricsData>({

View file

@ -15,7 +15,7 @@ export function useWebsiteMetricsQuery(
options?: ReactQueryOptions<WebsiteMetricsData>, options?: ReactQueryOptions<WebsiteMetricsData>,
) { ) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery<WebsiteMetricsData>({ return useQuery<WebsiteMetricsData>({

View file

@ -13,7 +13,7 @@ export function useWebsitePageviewsQuery(
options?: ReactQueryOptions<WebsitePageviewsData>, options?: ReactQueryOptions<WebsitePageviewsData>,
) { ) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const queryParams = useFilterParameters(); const queryParams = useFilterParameters();
return useQuery<WebsitePageviewsData>({ return useQuery<WebsitePageviewsData>({

View file

@ -4,7 +4,7 @@ import { useDateParameters } from '../useDateParameters';
export function useWebsiteSessionStatsQuery(websiteId: string, options?: Record<string, string>) { export function useWebsiteSessionStatsQuery(websiteId: string, options?: Record<string, string>) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery({ return useQuery({

View file

@ -10,7 +10,7 @@ export function useWebsiteSessionsQuery(
) { ) {
const { get } = useApi(); const { get } = useApi();
const { modified } = useModified(`sessions`); const { modified } = useModified(`sessions`);
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return usePagedQuery({ return usePagedQuery({

View file

@ -23,7 +23,7 @@ export function useWebsiteStatsQuery(
options?: UseQueryOptions<WebsiteStatsData, Error, WebsiteStatsData>, options?: UseQueryOptions<WebsiteStatsData, Error, WebsiteStatsData>,
) { ) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery<WebsiteStatsData>({ return useQuery<WebsiteStatsData>({

View file

@ -6,7 +6,7 @@ import { useFilterParameters } from '@/components/hooks/useFilterParameters';
export function useWeeklyTrafficQuery(websiteId: string, params?: Record<string, string | number>) { export function useWeeklyTrafficQuery(websiteId: string, params?: Record<string, string | number>) {
const { get, useQuery } = useApi(); const { get, useQuery } = useApi();
const { modified } = useModified(`sessions`); const { modified } = useModified(`sessions`);
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
return useQuery({ return useQuery({

View file

@ -9,7 +9,7 @@ import { useFilterParameters } from '@/components/hooks/useFilterParameters';
export function ExportButton({ websiteId }: { websiteId: string }) { export function ExportButton({ websiteId }: { websiteId: string }) {
const { formatMessage, labels } = useMessages(); const { formatMessage, labels } = useMessages();
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const date = useDateParameters(websiteId); const date = useDateParameters();
const filters = useFilterParameters(); const filters = useFilterParameters();
const searchParams = useSearchParams(); const searchParams = useSearchParams();
const { get } = useApi(); const { get } = useApi();

View file

@ -14,14 +14,16 @@ export function WebsiteSelect({
teamId?: string; teamId?: string;
includeTeams?: boolean; includeTeams?: boolean;
} & SelectProps) { } & SelectProps) {
const website = useWebsite();
const { formatMessage, messages } = useMessages(); const { formatMessage, messages } = useMessages();
const website = useWebsite();
const [name, setName] = useState<string>(website?.name);
const [search, setSearch] = useState(''); const [search, setSearch] = useState('');
const { user } = useLoginQuery(); const { user } = useLoginQuery();
const { data, isLoading } = useUserWebsitesQuery( const { data, isLoading } = useUserWebsitesQuery(
{ userId: user?.id, teamId }, { userId: user?.id, teamId },
{ search, pageSize: 10, includeTeams }, { search, pageSize: 10, includeTeams },
); );
const listItems: { id: string; name: string }[] = data?.['data'] || [];
const handleSearch = (value: string) => { const handleSearch = (value: string) => {
setSearch(value); setSearch(value);
@ -31,10 +33,15 @@ export function WebsiteSelect({
setSearch(''); setSearch('');
}; };
const handleChange = (id: string) => {
setName(listItems.find(item => item.id === id)?.name);
onChange(id);
};
const renderValue = () => { const renderValue = () => {
return ( return (
<Row maxWidth="160px"> <Row maxWidth="160px">
<Text truncate>{website.name}</Text> <Text truncate>{name}</Text>
</Row> </Row>
); );
}; };
@ -42,13 +49,13 @@ export function WebsiteSelect({
return ( return (
<Select <Select
{...props} {...props}
items={data?.['data'] || []} items={listItems}
value={websiteId} value={websiteId}
isLoading={isLoading} isLoading={isLoading}
allowSearch={true} allowSearch={true}
searchValue={search} searchValue={search}
onSearch={handleSearch} onSearch={handleSearch}
onChange={onChange} onChange={handleChange}
onOpenChange={handleOpenChange} onOpenChange={handleOpenChange}
renderValue={renderValue} renderValue={renderValue}
listProps={{ listProps={{