Skip to content

Commit

Permalink
types and variable rename
Browse files Browse the repository at this point in the history
  • Loading branch information
piggydoughnut committed Jan 26, 2024
1 parent a657374 commit 6e4db6b
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 78 deletions.
34 changes: 7 additions & 27 deletions src/modules/hub-map/client/components/ScheduledItem.tsx
Original file line number Diff line number Diff line change
@@ -1,35 +1,15 @@
import React from 'react'
import { cn } from '#client/utils'
import { ScheduledItemType, StatusColor, VisitType } from '#shared/types'
import {
ColorsBg,
ColorsBorder,
ColorsHover,
ScheduledItemType,
StatusColor,
} from '#shared/types'
import dayjs from 'dayjs'
import { FButton, P } from '#client/components/ui'

export const ColorsBg: Record<string, string> = {
[VisitType.RoomReservation]: 'bg-cta-hover-jade',
[VisitType.Visit]: 'bg-cta-hover-purple',
[VisitType.Guest]: 'bg-cta-hover-cerullean',
}

export const ColorsBorder: Record<string, string> = {
[VisitType.RoomReservation]: 'border-cta-jade',
[VisitType.Visit]: 'border-cta-purple',
[VisitType.Guest]: 'border-cta-hover-cerullean',
}

export const ColorsHover: Record<string, string> = {
[VisitType.RoomReservation]: `hover:${
ColorsBorder[VisitType.RoomReservation]
}`,
[VisitType.Visit]: `hover:${ColorsBorder[VisitType.Visit]}`,
[VisitType.Guest]: `hover:${ColorsBorder[VisitType.Guest]}`,
}

export const OfficeVisitsHeaders = {
[VisitType.Visit]: 'Desks',
[VisitType.Guest]: 'Guest Visits',
[VisitType.RoomReservation]: 'Rooms',
} as const

export const PageUrls: Record<string, string> = {
event: '/events',
}
Expand Down
28 changes: 14 additions & 14 deletions src/modules/hub-map/client/components/ScheduledItemsList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export const ScheduledItemsList: React.FC<{
}> = ({ onChooseCard, setDate, date, className }) => {
const officeId = useStore(stores.officeId)
const office = useOffice(officeId)
const [upcomingEvents, setUpcomingEvents] = React.useState([])
const [scheduledItems, setScheduledItems] = React.useState([])
const [selected, setSelected] = React.useState<ScheduledItemType | null>(null)

const cancellationCallback = () => {
Expand All @@ -46,40 +46,40 @@ export const ScheduledItemsList: React.FC<{
status: VisitStatus | RoomReservationStatus | GuestInviteStatus
}

const { data: myUpcomingVisits, refetch: refetchVisits } = useUpcoming(
const { data: myUpcomingSchduledItems, refetch: refetchVisits } = useUpcoming(
officeId,
dayjs().toString(),
me?.id
)

React.useEffect(() => {
if (!!myUpcomingVisits?.upcoming) {
setUpcomingEvents(myUpcomingVisits.upcoming)
if (!!myUpcomingSchduledItems?.upcoming) {
setScheduledItems(myUpcomingSchduledItems.upcoming)
}
}, [myUpcomingVisits])
}, [myUpcomingSchduledItems])

React.useEffect(() => {
if (selected) {
// if you removed the last item of this type
if (myUpcomingVisits?.byType[selected?.type].length === 0) {
if (myUpcomingSchduledItems?.byType[selected?.type].length === 0) {
resetView()
} else {
setUpcomingEvents(myUpcomingVisits?.byType[selected?.type])
setScheduledItems(myUpcomingSchduledItems?.byType[selected?.type])
}
}
}, [myUpcomingVisits?.byType, date])
}, [myUpcomingSchduledItems?.byType, date])

const resetView = () => {
setSelected(null)
setUpcomingEvents(myUpcomingVisits.upcoming)
setScheduledItems(myUpcomingSchduledItems.upcoming)
onChooseCard(null, selected?.areaId ?? '', dayjs())
}

const processOnClick = (scheduledItem: ScheduledItemType) => {
if (!scheduledItem) {
return
}
setUpcomingEvents(myUpcomingVisits.byType[scheduledItem.type])
setScheduledItems(myUpcomingSchduledItems.byType[scheduledItem.type])
setSelected(scheduledItem)
setDate(dayjs(scheduledItem.date))
onChooseCard(
Expand Down Expand Up @@ -136,11 +136,11 @@ export const ScheduledItemsList: React.FC<{
</p>
)}
<div className="flex justify-start gap-4 overflow-x-auto max-w-[980px]">
{!!upcomingEvents?.length &&
upcomingEvents.map((v: ScheduledItemType, index) => (
{!!scheduledItems?.length &&
scheduledItems.map((item: ScheduledItemType, index) => (
<ScheduledItem
key={v?.id}
sheduledItem={v}
key={item?.id}
sheduledItem={item}
onClick={processOnClick}
selected={selected?.id ?? null}
onEntityCancel={onEntityCancel}
Expand Down
20 changes: 2 additions & 18 deletions src/modules/hub-map/client/queries.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,8 @@
import { useQuery, useMutation } from 'react-query'
import { AxiosError, AxiosResponse } from 'axios'
import { useQuery } from 'react-query'
import { AxiosError } from 'axios'
import { api } from '#client/utils/api'
import dayjs from 'dayjs'
import { DATE_FORMAT } from '#server/constants'
// import { Entity } from '#shared/types'

// export const useCreateEntity = (cb: () => void) =>
// useMutation<AxiosResponse, AxiosError, EntityCreationRequest>(
// (data: EntityCreationRequest) =>
// api.post('/admin-api/<MODULE_ID>/<ENTITY>', data),
// { onSuccess: cb }
// )

// export const useEntities = () => {
// const path = '/admin-api/<MODULE_ID>/<ENTITY>'
// return useQuery<Entity[], AxiosError>(
// path,
// async () => (await api.get<Entity[]>(path)).data
// )
// }

export const useUpcoming = (
officeId: string,
Expand Down
32 changes: 29 additions & 3 deletions src/modules/hub-map/types.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,33 @@
// @todo fix type
export const StatusColor: Record<string, string> = {
import { VisitStatus, VisitType } from '#shared/types'

export const ColorsBg: Record<string, string> = {
[VisitType.RoomReservation]: 'bg-cta-hover-jade',
[VisitType.Visit]: 'bg-cta-hover-purple',
[VisitType.Guest]: 'bg-cta-hover-cerullean',
}

export const ColorsBorder: Record<string, string> = {
[VisitType.RoomReservation]: 'border-cta-jade',
[VisitType.Visit]: 'border-cta-purple',
[VisitType.Guest]: 'border-cta-hover-cerullean',
}

export const ColorsHover: Record<string, string> = {
[VisitType.RoomReservation]: `hover:${
ColorsBorder[VisitType.RoomReservation]
}`,
[VisitType.Visit]: `hover:${ColorsBorder[VisitType.Visit]}`,
[VisitType.Guest]: `hover:${ColorsBorder[VisitType.Guest]}`,
}

export const OfficeVisitsHeaders = {
[VisitType.Visit]: 'Desks',
[VisitType.Guest]: 'Guest Visits',
[VisitType.RoomReservation]: 'Rooms',
} as const

export const StatusColor: Record<VisitStatus, string> = {
confirmed: 'bg-green-500',
pending: 'bg-yellow-500',
cancelled: 'bg-red-500',
rejected: 'bg-red-500',
}
14 changes: 0 additions & 14 deletions src/modules/office-visits/client/queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,6 @@ export const useOfficeVisits = (officeId: string, date: string) => {
)
}

export const useOfficeVisitsUpcoming = (
officeId: string,
date: string,
userId?: string
) => {
const path = '/user-api/office-visits/upcoming'
return useQuery<any, AxiosError>(
[path, { officeId, date: dayjs(date).format(DATE_FORMAT), userId }],
async ({ queryKey }) =>
(await api.get<any>(path, { params: queryKey[1] })).data,
{ enabled: !!officeId }
)
}

export const useVisitsStatsAdmin = (
officeId: string,
dateRange: [string, string],
Expand Down
3 changes: 1 addition & 2 deletions src/modules/room-reservation/server/helpers/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { appConfig } from '#server/app-config'
import { DATE_FORMAT_DAY_NAME } from '#server/constants'
import { Office, RoomReservation } from '#shared/types'
import { RoomReservation } from '#shared/types'
import dayjs, { Dayjs } from 'dayjs'

export const intervalStep = 30
Expand Down

0 comments on commit 6e4db6b

Please sign in to comment.