Skip to content

Commit

Permalink
refactor(types, utility-types): extract types from web
Browse files Browse the repository at this point in the history
  • Loading branch information
manudeli committed Feb 19, 2023
1 parent 17c297b commit 8f5e291
Show file tree
Hide file tree
Showing 81 changed files with 733 additions and 634 deletions.
2 changes: 1 addition & 1 deletion apps/web/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module.exports = {
...require('@slamapp/eslint/next.js'),
...require('@slam/eslint/next.js'),
parserOptions: {
tsconfigRootDir: __dirname,
project: './tsconfig.json',
Expand Down
2 changes: 1 addition & 1 deletion apps/web/api/courts/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { APICourt, APINewCourt, APIReservation, APIUser } from '@slam/types'
import { http } from '~/api/core'
import { APICourt, APINewCourt, APIReservation, APIUser } from '~/types/domains/objects'

const courtApi = {
getCourtsByCoordsAndDate: ({
Expand Down
3 changes: 1 addition & 2 deletions apps/web/api/favorites/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { APICourt, APIFavorite, List } from '@slam/types'
import { http } from '~/api/core'
import { List } from '~/types/domains/lists'
import { APICourt, APIFavorite } from '~/types/domains/objects'

export default {
getMyFavorites: () => http.get<List<APIFavorite>>('/favorites'),
Expand Down
5 changes: 1 addition & 4 deletions apps/web/api/follows/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import { APIFollower, APIFollowing, APIUser, CursorList, CursorListRequestOption } from '@slam/types'
import { http } from '~/api/core'
import { CursorList } from '~/types/domains/lists'
import { CursorListRequestOption } from '~/types/domains/lists/CursorList'
import { APIUser } from '~/types/domains/objects'
import { APIFollower, APIFollowing } from '~/types/domains/objects/follow'

export default {
getUserFollowings: (
Expand Down
3 changes: 1 addition & 2 deletions apps/web/api/notifications/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { APINotification, CursorListRequestOption } from '@slam/types'
import { AxiosPromise } from 'axios'
import { http } from '~/api/core'
import { CursorListRequestOption } from '~/types/domains/lists/CursorList'
import { APINotification } from '~/types/domains/objects'

export default {
getNotifications: ({ size = 3, lastId, isFirst = false }: CursorListRequestOption<APINotification>) =>
Expand Down
4 changes: 1 addition & 3 deletions apps/web/api/reservations/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import { APICourt, APIReservation, APIUser, CursorList, CursorListRequestOption, List } from '@slam/types'
import { http } from '~/api/core'
import { CursorList, List } from '~/types/domains/lists'
import { CursorListRequestOption } from '~/types/domains/lists/CursorList'
import { APICourt, APIReservation, APIUser } from '~/types/domains/objects'

export default {
getMyUpcomingReservations: () => http.get<List<APIReservation>>('/reservations/upcoming'),
Expand Down
2 changes: 1 addition & 1 deletion apps/web/api/users/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { APICourt, APINotification, APIUser } from '@slam/types'
import { http } from '~/api/core'
import { APICourt, APINotification, APIUser } from '~/types/domains/objects'

export default {
getUserData: () => http.get<APIUser & { notifications: APINotification[] }>('/users/me'),
Expand Down
2 changes: 1 addition & 1 deletion apps/web/components/domains/CourtItem/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import { ReactNode } from 'react'
import Link from 'next/link'
import { Box, HStack, Text } from '@chakra-ui/react'
import { css, useTheme } from '@emotion/react'
import { APIChatRoom, APICourt, APIFavorite } from '@slam/types'
import { Icon, IconButton } from '~/components/uis'
import { useCancelFavoriteMutation, useCreateFavoriteMutation } from '~/features/favorites'
import { withShareClick } from '~/hocs'
import { APIChatRoom, APICourt, APIFavorite } from '~/types/domains/objects'

const CourtItem = {
Share: ({ court }: { court: Pick<APICourt, 'id' | 'name' | 'longitude' | 'latitude'> }) =>
Expand Down
2 changes: 1 addition & 1 deletion apps/web/components/domains/FollowListItem/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { HStack, Text } from '@chakra-ui/react'
import { APIUser } from '@slam/types'
import { Button } from '~/components/uis'
import { APIUser } from '~/types/domains/objects'
import ProfileAvatar from '../ProfileAvatar'

const FollowListItem = ({
Expand Down
2 changes: 1 addition & 1 deletion apps/web/components/domains/ProfileAvatar/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Link from 'next/link'
import { Avatar } from '@chakra-ui/react'
import { APIUser } from '@slam/types'
import { DEFAULT_PROFILE_IMAGE_URL } from '~/constants'
import { APIUser } from '~/types/domains/objects'

const ProfileAvatar = ({ user }: { user: Pick<APIUser, 'id' | 'profileImage'> }) => {
return (
Expand Down
2 changes: 1 addition & 1 deletion apps/web/components/domains/ReservationItem/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Box, Center, Flex, HStack, Text, VStack } from '@chakra-ui/react'
import { APIReservation } from '@slam/types'
import { useQueryClient } from '@tanstack/react-query'
import dayjs from 'dayjs'
import { AnimatePresence, motion } from 'framer-motion'
Expand All @@ -8,7 +9,6 @@ import { key } from '~/features'
import { useGetFavoritesQuery } from '~/features/favorites'
import { useDeleteReservationMutation } from '~/features/reservations'
import { useScrollContainer } from '~/layouts'
import { APIReservation } from '~/types/domains/objects'

interface Props {
reservation: APIReservation
Expand Down
2 changes: 1 addition & 1 deletion apps/web/components/domains/ReservationTable/context.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Dispatch, SetStateAction, createContext, useContext } from 'react'
import { APICourt } from '~/types/domains/objects/court'
import { APICourt } from '@slam/types'

export interface ContextProps {
isNeedToScrollUnderDisabledCell: boolean
Expand Down
2 changes: 1 addition & 1 deletion apps/web/components/domains/ReservationTable/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import { useRouter } from 'next/router'
import { Box, Center, Flex, VStack } from '@chakra-ui/react'
import { css, useTheme } from '@emotion/react'
import styled from '@emotion/styled'
import { APICourt } from '@slam/types'
import dayjs, { Dayjs } from 'dayjs'
import { motion } from 'framer-motion'
import { useGetReservationsInfiniteQuery } from '~/features/reservations'
import { useIntersectionObserver } from '~/hooks'
import { useScrollContainer } from '~/layouts'
import { useSetNavigation } from '~/layouts/Layout/navigations'
import { APICourt } from '~/types/domains/objects'
import { Context, ContextProps, useReservationTable } from './context'
import 'dayjs/locale/ko'

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { css } from '@emotion/react'
import { Coord } from '@slam/types'
import { motion } from 'framer-motion'
import { IconButton } from '~/components/uis'
import { Coord } from '~/types/domains/objects/court'
import { useMap } from '../../context'

// 서울의 경도, 위도
Expand Down
2 changes: 1 addition & 1 deletion apps/web/features/addresses/key.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { APICourt } from '~/types/domains/objects'
import { APICourt } from '@slam/types'

const key = {
all: ['address'] as const,
Expand Down
2 changes: 1 addition & 1 deletion apps/web/features/courts/key.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { APICourt } from '@slam/types'
import { api } from '~/api'
import { APICourt } from '~/types/domains/objects'

const key = {
all: ['courts'] as const,
Expand Down
2 changes: 1 addition & 1 deletion apps/web/features/courts/useCourtQuery/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { APICourt } from '@slam/types'
import { UseSuspenseQueryOptions, useSuspenseQuery } from '@suspensive/react-query'
import { api } from '~/api'
import { key } from '~/features'
import { APICourt } from '~/types/domains/objects/court'

const useCourtQuery = (
courtId: APICourt['id'],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { APIFavorite } from '@slam/types'
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { api } from '~/api'
import key from '~/features/key'
import { APIFavorite } from '~/types/domains/objects'

const useCancelFavoriteMutation = () => {
const queryClient = useQueryClient()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { APICourt } from '@slam/types'
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { api } from '~/api'
import key from '~/features/key'
import { APICourt } from '~/types/domains/objects'

const useCreateFavoriteMutation = () => {
const queryClient = useQueryClient()
Expand Down
2 changes: 1 addition & 1 deletion apps/web/features/reservations/key.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { APICourt } from '~/types/domains/objects/court'
import { APICourt } from '@slam/types'

const key = {
all: ['reservations'] as const,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { APIReservation } from '@slam/types'
import { useMutation } from '@tanstack/react-query'
import { api } from '~/api'
import { APIReservation } from '~/types/domains/objects'

const useDeleteReservationMutation = () =>
useMutation((reservationId: APIReservation['id']) => api.reservations.deleteReservation(reservationId))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
import { APICourt } from '@slam/types'
import { useSuspenseInfiniteQuery } from '@suspensive/react-query'
import dayjs from 'dayjs'
import { api } from '~/api'
import { APICourt } from '~/types/domains/objects'
import key from '../key'
import key from '~/features/key'

const useGetReservationsInfiniteQuery = ({ courtId, initialDate }: { courtId: APICourt['id']; initialDate: string }) =>
useSuspenseInfiniteQuery(key.court(courtId), async ({ pageParam: date = dayjs(initialDate).toISOString() }) => {
const { data } = await api.reservations.getReservationsAtDate({
courtId,
date,
})

return { ...data, date }
})
useSuspenseInfiniteQuery(key.reservations.court(courtId), ({ pageParam: date = dayjs(initialDate).toISOString() }) =>
api.reservations.getReservationsAtDate({ courtId, date }).then(({ data }) => ({ ...data, date }))
)

export default useGetReservationsInfiniteQuery
2 changes: 1 addition & 1 deletion apps/web/features/users/key.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { APIUser } from '~/types/domains/objects'
import { APIUser } from '@slam/types'

const key = {
all: ['users'] as const,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { APIUser } from '@slam/types'
import { useSuspenseInfiniteQuery } from '@suspensive/react-query'
import { api } from '~/api'
import key from '~/features/key'
import { APIUser } from '~/types/domains/objects'

const useUserFollowerInfiniteQuery = (userId: APIUser['id']) =>
useSuspenseInfiniteQuery(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { APIUser } from '@slam/types'
import { useSuspenseInfiniteQuery } from '@suspensive/react-query'
import { api } from '~/api'
import key from '~/features/key'
import { APIUser } from '~/types/domains/objects'

const useUserFollowingInfiniteQuery = (userId: APIUser['id']) =>
useSuspenseInfiniteQuery(
Expand Down
2 changes: 1 addition & 1 deletion apps/web/features/users/useUserProfileQuery/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { APIUser } from '@slam/types'
import { useSuspenseQuery } from '@suspensive/react-query'
import { api } from '~/api'
import { key } from '~/features'
import { APIUser } from '~/types/domains/objects'

const useUserProfileQuery = ({ userId }: { userId: APIUser['id'] }) =>
useSuspenseQuery(key.users.otherProfile(userId), () =>
Expand Down
2 changes: 1 addition & 1 deletion apps/web/hocs/withShareClick/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ComponentType, UIEvent } from 'react'
import { positionType, proficiencyType } from '@slam/types'
import copy from 'copy-to-clipboard'
import { Toast } from '~/components/uis'
import { positionType, proficiencyType } from '~/types/domains/objects/user'
import { sendKakaoLink } from './sendKakaoLink'
import { ShareArgs } from './types'

Expand Down
3 changes: 1 addition & 2 deletions apps/web/hocs/withShareClick/types.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { OmitAt } from '~/types/domains/helpers'
import { APICourt, APICourtChatroom, APIUser } from '~/types/domains/objects'
import { APICourt, APICourtChatroom, APIUser, OmitAt } from '@slam/types'

export type ShareArgs = CourtArgs | CourtChatroomArgs | UserArgs

Expand Down
2 changes: 1 addition & 1 deletion apps/web/next.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = {
reactStrictMode: true,
transpilePackages: ['@slamapp/ui'],
transpilePackages: ['@slam/ui'],
}
8 changes: 5 additions & 3 deletions apps/web/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "@slamapp/web",
"name": "@slam/web",
"version": "0.0.0",
"private": true,
"scripts": {
Expand All @@ -18,7 +18,9 @@
"@hookform/devtools": "^4.2.2",
"@hookform/resolvers": "^2.9.8",
"@sentry/nextjs": "^7.15.0",
"@slamapp/ui": "workspace:*",
"@slam/types": "workspace:*",
"@slam/utility-types": "workspace:*",
"@slam/ui": "workspace:*",
"@suspensive/react": "^1.9.2",
"@suspensive/react-query": "^1.9.2",
"@tanstack/react-query": "^4.13.0",
Expand All @@ -41,7 +43,7 @@
},
"devDependencies": {
"@babel/core": "^7.0.0",
"@slamapp/eslint": "workspace:*",
"@slam/eslint": "workspace:*",
"@stylelint/postcss-css-in-js": "^0.38.0",
"@types/feather-icons": "^4.7.0",
"@types/node": "18.7.18",
Expand Down
2 changes: 1 addition & 1 deletion apps/web/pages/courts/create.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import {
} from '@chakra-ui/react'
import { css, useTheme } from '@emotion/react'
import { DevTool } from '@hookform/devtools'
import { APICourt } from '@slam/types'
import { motion } from 'framer-motion'
import { Controller, useForm } from 'react-hook-form'
import { api } from '~/api'
Expand All @@ -24,7 +25,6 @@ import { Button, Icon, IconButton, Toast } from '~/components/uis'
import { useCourtCreateMutation } from '~/features/courts'
import { BottomFixedGradient, useScrollContainer } from '~/layouts'
import { Navigation } from '~/layouts/Layout/navigations'
import { APICourt } from '~/types/domains/objects/court'

const Page = () => {
const router = useRouter()
Expand Down
2 changes: 1 addition & 1 deletion apps/web/pages/map/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import Link from 'next/link'
import { useRouter } from 'next/router'
import { Box, Flex, HStack, Text, VStack } from '@chakra-ui/react'
import { css, useTheme } from '@emotion/react'
import { APICourt } from '@slam/types'
import { Delay, Suspense } from '@suspensive/react'
import dayjs, { Dayjs } from 'dayjs'
import { motion } from 'framer-motion'
Expand All @@ -16,7 +17,6 @@ import { useGetUpcomingReservationsQuery } from '~/features/reservations'
import { useCurrentUserQuery } from '~/features/users'
import { useLocalStorage } from '~/hooks'
import { Navigation } from '~/layouts/Layout/navigations'
import { APICourt } from '~/types/domains/objects'

const PAUSE_COURT_NUMBER = 0
const FIRE_COURT_NUMBER = 6
Expand Down
2 changes: 1 addition & 1 deletion apps/web/pages/notifications/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { NextPage } from 'next'
import Link from 'next/link'
import { Box, HStack } from '@chakra-ui/react'
import { css, useTheme } from '@emotion/react'
import { APINotification } from '@slam/types'
import { Delay, Suspense } from '@suspensive/react'
import { useQueryClient } from '@tanstack/react-query'
import dayjs from 'dayjs'
Expand All @@ -14,7 +15,6 @@ import { key } from '~/features'
import { useGetInfiniteNotificationsQuery } from '~/features/notifications'
import { useIsMounted } from '~/hooks'
import { Navigation } from '~/layouts/Layout/navigations'
import { APINotification } from '~/types/domains/objects'

const Page: NextPage = () => (
<Navigation
Expand Down
11 changes: 5 additions & 6 deletions apps/web/pages/reservations/courts/[courtId]/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import { GetServerSideProps, NextPage } from 'next'
import { useRouter } from 'next/router'
import { Box, Center, Flex, Text, VStack } from '@chakra-ui/react'
import { useTheme } from '@emotion/react'
import { Suspense, withSuspense } from '@suspensive/react'
import { APICourt } from '@slam/types'
import { Suspense } from '@suspensive/react'
import { useQueryClient } from '@tanstack/react-query'
import { Dayjs } from 'dayjs'
import { AnimatePresence, motion } from 'framer-motion'
Expand All @@ -13,7 +14,6 @@ import { key } from '~/features'
import { useCreateReservationMutation, useGetReservationsInfiniteQuery } from '~/features/reservations'
import { useScrollContainer } from '~/layouts'
import { Navigation } from '~/layouts/Layout/navigations'
import { APICourt } from '~/types/domains/objects'

type Props = { courtId: string; date: string }
export const getServerSideProps: GetServerSideProps<Props> = async ({ query }) => ({
Expand Down Expand Up @@ -43,10 +43,9 @@ const Contents = ({ courtId, date }: Props) => {
const queryClient = useQueryClient()

const createReservationMutation = useCreateReservationMutation(courtId)
const getReservationsInfiniteQuery = useGetReservationsInfiniteQuery({
courtId,
initialDate: date,
})
const getReservationsInfiniteQuery = useGetReservationsInfiniteQuery({ courtId, initialDate: date })

console.log(getReservationsInfiniteQuery.data)

const [reservation, setReservation] = useState<{
courtId: APICourt['id']
Expand Down
2 changes: 1 addition & 1 deletion apps/web/pages/user/[userId]/follower.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { Fragment, forwardRef } from 'react'
import { GetServerSideProps, NextPage } from 'next'
import { Box, HStack, VStack } from '@chakra-ui/react'
import { APIUser } from '@slam/types'
import { Delay, Suspense } from '@suspensive/react'
import { FollowListItem, NoItemMessage } from '~/components/domains'
import { InfiniteScrollSensor, Skeleton } from '~/components/uis'
import { useUserFollowerInfiniteQuery } from '~/features/users'
import { Navigation } from '~/layouts/Layout/navigations'
import { APIUser } from '~/types/domains/objects'

type Props = { userId: APIUser['id'] }
const Page: NextPage<Props> = ({ userId }) => (
Expand Down
2 changes: 1 addition & 1 deletion apps/web/pages/user/[userId]/following.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { Fragment, forwardRef } from 'react'
import { GetServerSideProps, NextPage } from 'next'
import { Box, HStack, VStack } from '@chakra-ui/react'
import { APIUser } from '@slam/types'
import { Delay, Suspense } from '@suspensive/react'
import { FollowListItem, NoItemMessage } from '~/components/domains'
import { InfiniteScrollSensor, Skeleton } from '~/components/uis'
import { useUserFollowingInfiniteQuery } from '~/features/users'
import { Navigation } from '~/layouts/Layout/navigations'
import { APIUser } from '~/types/domains/objects'

type Props = { userId: APIUser['id'] }
const Page: NextPage<Props> = ({ userId }) => (
Expand Down
Loading

0 comments on commit 8f5e291

Please sign in to comment.