import React from "react"; import { History } from "history"; import { RequireAtLeastOne } from 'src/utils/types' import CourseCardV from "./course-card-v"; import CourseCardH from "./course-card-h"; interface BaseNavigation { e: React.MouseEvent courseId: number navigate?: (courseId: number) => void history?: History } export type Navigation = RequireAtLeastOne<BaseNavigation, 'history' | 'navigate'> export const handleNavigation: (navigationArgs: Navigation) => void = ({ e, courseId, navigate, history }) => { const _n = navigate || function (courseId: number) { history!.push(`/detail?id=${courseId}`) } let nodeName = (e.target as HTMLElement).nodeName.toLowerCase() if (nodeName === 'a' || nodeName === 'button') { return } _n(courseId) } export const H = CourseCardH export const V = CourseCardV export default CourseCardH