diff --git a/apps/arkmarket/src/app/token/[contractAddress]/[tokenId]/components/token-actions-make-bid.tsx b/apps/arkmarket/src/app/token/[contractAddress]/[tokenId]/components/token-actions-make-bid.tsx index 55e580b4..8bec049e 100644 --- a/apps/arkmarket/src/app/token/[contractAddress]/[tokenId]/components/token-actions-make-bid.tsx +++ b/apps/arkmarket/src/app/token/[contractAddress]/[tokenId]/components/token-actions-make-bid.tsx @@ -59,7 +59,7 @@ export default function TokenActionsMakeBid({ tokenMarketData, small, }: TokenActionsMakeBidProps) { - const { account, address } = useAccount(); + const { account, address, isConnected } = useAccount(); const [isOpen, setIsOpen] = useState(false); const config = useConfig(); const { createOffer, status } = useCreateOffer(); @@ -103,8 +103,8 @@ export default function TokenActionsMakeBid({ resolver: zodResolver(formSchema), defaultValues: { startAmount: formatEther(BigInt(tokenMarketData.listing.start_amount)), - duration: "719", - endDateTime: moment().add(1, "month").toDate(), + duration: "168", + endDateTime: undefined, }, }); @@ -152,15 +152,20 @@ export default function TokenActionsMakeBid({ return; } + const now = moment(); + const endDate = values.endDateTime + ? moment(values.endDateTime).isBefore(now) + ? now.add(2, "minutes").unix() + : moment(values.endDateTime).unix() + : now.add(values.duration, "hours").unix(); + const processedValues = { brokerId: env.NEXT_PUBLIC_BROKER_ID, currencyAddress: config?.starknetCurrencyContract, tokenAddress: token.collection_address, tokenId: BigInt(token.token_id), startAmount: parseEther(values.startAmount), - endDate: values.endDateTime - ? moment(values.endDateTime).unix() - : moment().add(values.duration, "hours").unix(), + endDate, }; await createOffer({ @@ -170,8 +175,7 @@ export default function TokenActionsMakeBid({ } const isLoading = status === "loading"; - const isDisabled = - !form.formState.isValid || form.formState.isSubmitting || isLoading; + const isDisabled = !form.formState.isValid || isLoading; const startAmount = form.watch("startAmount"); const formattedStartAmount = formatAmount(startAmount); const price = formatEther(BigInt(tokenMarketData.listing.start_amount)); @@ -186,6 +190,7 @@ export default function TokenActionsMakeBid({ className={cn(small ?? "relative w-full lg:max-w-[50%]")} size={small ? "xl" : "xxl"} variant="secondary" + disabled={!isConnected} onClick={ensureConnect} > diff --git a/apps/arkmarket/src/app/token/[contractAddress]/[tokenId]/components/token-actions-make-offer.tsx b/apps/arkmarket/src/app/token/[contractAddress]/[tokenId]/components/token-actions-make-offer.tsx index c84c157c..2aab57fe 100644 --- a/apps/arkmarket/src/app/token/[contractAddress]/[tokenId]/components/token-actions-make-offer.tsx +++ b/apps/arkmarket/src/app/token/[contractAddress]/[tokenId]/components/token-actions-make-offer.tsx @@ -55,7 +55,7 @@ interface TokenActionsMakeOfferProps { } function TokenActionsMakeOffer({ token, small }: TokenActionsMakeOfferProps) { - const { account, address } = useAccount(); + const { account, address, isConnected } = useAccount(); const [isOpen, setIsOpen] = useState(false); const config = useConfig(); const { createOffer, status } = useCreateOffer(); @@ -100,7 +100,7 @@ function TokenActionsMakeOffer({ token, small }: TokenActionsMakeOfferProps) { defaultValues: { startAmount: "", duration: "168", - endDateTime: moment().add(1, "month").toDate(), + endDateTime: undefined, }, }); @@ -148,15 +148,20 @@ function TokenActionsMakeOffer({ token, small }: TokenActionsMakeOfferProps) { return; } + const now = moment(); + const endDate = values.endDateTime + ? moment(values.endDateTime).isBefore(now) + ? now.add(2, "minutes").unix() + : moment(values.endDateTime).unix() + : now.add(values.duration, "hours").unix(); + const processedValues = { brokerId: env.NEXT_PUBLIC_BROKER_ID, currencyAddress: config?.starknetCurrencyContract, tokenAddress: token.collection_address, tokenId: BigInt(token.token_id), startAmount: parseEther(values.startAmount), - endDate: values.endDateTime - ? moment(values.endDateTime).unix() - : moment().add(values.duration, "hours").unix(), + endDate, }; await createOffer({ @@ -166,8 +171,7 @@ function TokenActionsMakeOffer({ token, small }: TokenActionsMakeOfferProps) { } const isLoading = status === "loading"; - const isDisabled = - !form.formState.isValid || form.formState.isSubmitting || isLoading; + const isDisabled = !form.formState.isValid || isLoading; const startAmount = form.watch("startAmount"); const formattedStartAmount = formatAmount(startAmount); @@ -178,6 +182,7 @@ function TokenActionsMakeOffer({ token, small }: TokenActionsMakeOfferProps) { className={cn(small ?? "relative w-full lg:max-w-[50%]")} size={small ? "xl" : "xxl"} variant="secondary" + disabled={!isConnected} onClick={ensureConnect} >