🚸 (results) Improve time filter so that it takes into account user timezone
This commit is contained in:
@@ -8,7 +8,10 @@ import {
|
||||
timeFilterValues,
|
||||
defaultTimeFilter,
|
||||
} from '@/features/analytics/constants'
|
||||
import { parseDateFromTimeFilter } from '@/features/analytics/helpers/parseDateFromTimeFilter'
|
||||
import {
|
||||
parseFromDateFromTimeFilter,
|
||||
parseToDateFromTimeFilter,
|
||||
} from '@/features/analytics/helpers/parseDateFromTimeFilter'
|
||||
|
||||
const maxLimit = 100
|
||||
|
||||
@@ -32,6 +35,7 @@ export const getResults = authenticatedProcedure
|
||||
limit: z.coerce.number().min(1).max(maxLimit).default(50),
|
||||
cursor: z.string().optional(),
|
||||
timeFilter: z.enum(timeFilterValues).default(defaultTimeFilter),
|
||||
timeZone: z.string().optional(),
|
||||
})
|
||||
)
|
||||
.output(
|
||||
@@ -77,7 +81,11 @@ export const getResults = authenticatedProcedure
|
||||
if (!typebot || (await isReadTypebotForbidden(typebot, user)))
|
||||
throw new TRPCError({ code: 'NOT_FOUND', message: 'Typebot not found' })
|
||||
|
||||
const date = parseDateFromTimeFilter(input.timeFilter)
|
||||
const fromDate = parseFromDateFromTimeFilter(
|
||||
input.timeFilter,
|
||||
input.timeZone
|
||||
)
|
||||
const toDate = parseToDateFromTimeFilter(input.timeFilter, input.timeZone)
|
||||
|
||||
const results = await prisma.result.findMany({
|
||||
take: limit + 1,
|
||||
@@ -86,9 +94,10 @@ export const getResults = authenticatedProcedure
|
||||
typebotId: typebot.id,
|
||||
hasStarted: true,
|
||||
isArchived: false,
|
||||
createdAt: date
|
||||
createdAt: fromDate
|
||||
? {
|
||||
gte: date,
|
||||
gte: fromDate,
|
||||
lte: toDate ?? undefined,
|
||||
}
|
||||
: undefined,
|
||||
},
|
||||
|
||||
@@ -24,6 +24,8 @@ import {
|
||||
timeFilterValues,
|
||||
} from '@/features/analytics/constants'
|
||||
|
||||
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone
|
||||
|
||||
export const ResultsPage = () => {
|
||||
const router = useRouter()
|
||||
const { workspace } = useWorkspace()
|
||||
@@ -45,6 +47,7 @@ export const ResultsPage = () => {
|
||||
{
|
||||
typebotId: publishedTypebot?.typebotId as string,
|
||||
timeFilter,
|
||||
timeZone,
|
||||
},
|
||||
{
|
||||
enabled: !!publishedTypebot,
|
||||
|
||||
@@ -7,10 +7,13 @@ type Params = {
|
||||
onError?: (error: string) => void
|
||||
}
|
||||
|
||||
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone
|
||||
|
||||
export const useResultsQuery = ({ timeFilter, typebotId, onError }: Params) => {
|
||||
const { data, error, fetchNextPage, hasNextPage, refetch } =
|
||||
trpc.results.getResults.useInfiniteQuery(
|
||||
{
|
||||
timeZone,
|
||||
timeFilter,
|
||||
typebotId,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user