@@ -19,6 +19,7 @@ import {
1919import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" ;
2020import { useMutation } from "@tanstack/react-query" ;
2121import clsx from "clsx" ;
22+ import moment from "moment" ;
2223import Link from "next/link" ;
2324import { useRouter } from "next/navigation" ;
2425import { type PropsWithChildren , useState } from "react" ;
@@ -104,6 +105,23 @@ export const CapCard = ({
104105
105106 const router = useRouter ( ) ;
106107
108+ const formatDuration = ( duration : string ) => {
109+ if ( ! duration ) return "0 secs" ;
110+
111+ const momentDuration = moment . duration ( duration , "milliseconds" ) ;
112+ const totalMinutes = Math . floor ( momentDuration . asMinutes ( ) ) ;
113+ const totalHours = Math . floor ( momentDuration . asHours ( ) ) ;
114+ const seconds = momentDuration . seconds ( ) ;
115+
116+ if ( totalHours > 0 ) {
117+ return "1 hr" ;
118+ } else if ( totalMinutes > 0 ) {
119+ return `${ totalMinutes } mins` ;
120+ } else {
121+ return `${ seconds } secs` ;
122+ }
123+ } ;
124+
107125 const downloadMutation = useMutation ( {
108126 mutationFn : async ( ) => {
109127 const response = await downloadVideo ( cap . id ) ;
@@ -389,6 +407,11 @@ export const CapCard = ({
389407 />
390408 </ div >
391409 ) }
410+ { cap . metadata ?. duration && (
411+ < p className = "text-white leading-0 px-2 py-px rounded-full backdrop-blur-sm absolute z-10 left-3 top-[112px] bg-black/50 text-[10px]" >
412+ { formatDuration ( cap . metadata . duration as string ) }
413+ </ p >
414+ ) }
392415 { ! sharedCapCard && onSelectToggle && (
393416 < div
394417 className = { clsx (
0 commit comments