diff --git a/components/badges/creation/BadgeDetails.tsx b/components/badges/creation/BadgeDetails.tsx index 58fef4c..8da860a 100644 --- a/components/badges/creation/BadgeDetails.tsx +++ b/components/badges/creation/BadgeDetails.tsx @@ -1,4 +1,5 @@ /* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ /* eslint-disable @typescript-eslint/no-unsafe-argument */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ @@ -10,6 +11,7 @@ import { FormControl } from 'components/FormControl' import { useInputState, useNumberInputState } from 'components/forms/FormInput.hooks' import { useMetadataAttributesState } from 'components/forms/MetadataAttributes.hooks' import { InputDateTime } from 'components/InputDateTime' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { Trait } from 'contracts/badgeHub' import type { ChangeEvent } from 'react' @@ -46,6 +48,7 @@ export interface BadgeDetailsDataProps { export const BadgeDetails = ({ metadataSize, onChange, uploadMethod }: BadgeDetailsProps) => { const wallet = useWallet() + const { timezone } = useGlobalSettings() const [timestamp, setTimestamp] = useState(undefined) const [transferrable, setTransferrable] = useState(false) const [metadataFile, setMetadataFile] = useState() @@ -273,8 +276,29 @@ export const BadgeDetails = ({ metadataSize, onChange, uploadMethod }: BadgeDeta {uploadMethod === 'existing' ? : null} - - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />
diff --git a/components/collections/actions/Action.tsx b/components/collections/actions/Action.tsx index 11275d3..85738bc 100644 --- a/components/collections/actions/Action.tsx +++ b/components/collections/actions/Action.tsx @@ -1,3 +1,5 @@ +/* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ import { toUtf8 } from '@cosmjs/encoding' import { AirdropUpload } from 'components/AirdropUpload' import { Button } from 'components/Button' @@ -14,6 +16,7 @@ import { InputDateTime } from 'components/InputDateTime' import { JsonPreview } from 'components/JsonPreview' import { Tooltip } from 'components/Tooltip' import { TransactionHash } from 'components/TransactionHash' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { BaseMinterInstance } from 'contracts/baseMinter' import type { OpenEditionMinterInstance } from 'contracts/openEditionMinter' @@ -56,6 +59,7 @@ export const CollectionActions = ({ }: CollectionActionsProps) => { const wallet = useWallet() const [lastTx, setLastTx] = useState('') + const { timezone } = useGlobalSettings() const [timestamp, setTimestamp] = useState(undefined) const [endTimestamp, setEndTimestamp] = useState(undefined) @@ -501,13 +505,53 @@ export const CollectionActions = ({ )} - - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> - - setEndTimestamp(date)} value={endTimestamp} /> + + + setEndTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? endTimestamp + : endTimestamp + ? new Date(endTimestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> diff --git a/components/collections/creation/CollectionDetails.tsx b/components/collections/creation/CollectionDetails.tsx index b2c2256..6c0295e 100644 --- a/components/collections/creation/CollectionDetails.tsx +++ b/components/collections/creation/CollectionDetails.tsx @@ -1,4 +1,5 @@ /* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ /* eslint-disable @typescript-eslint/no-unsafe-argument */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ @@ -10,6 +11,7 @@ import { FormGroup } from 'components/FormGroup' import { useInputState } from 'components/forms/FormInput.hooks' import { InputDateTime } from 'components/InputDateTime' import { Tooltip } from 'components/Tooltip' +import { useGlobalSettings } from 'contexts/globalSettings' import { addLogItem } from 'contexts/log' import type { ChangeEvent } from 'react' import { useEffect, useRef, useState } from 'react' @@ -51,6 +53,7 @@ export const CollectionDetails = ({ const [timestamp, setTimestamp] = useState() const [explicit, setExplicit] = useState(false) const [updatable, setUpdatable] = useState(false) + const { timezone } = useGlobalSettings() const initialRender = useRef(true) @@ -178,9 +181,29 @@ export const CollectionDetails = ({ className={clsx(minterType === 'base' ? 'mt-10' : 'mt-2')} htmlId="timestamp" subtitle="Trading start time offset will be set as 2 weeks by default." - title="Trading Start Time (optional)" + title={`Trading Start Time (optional | ${timezone === 'Local' ? 'local)' : 'UTC)'}`} > - setTimestamp(date)} value={timestamp} /> + + setTimestamp( + timezone === 'Local' + ? date + : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> diff --git a/components/collections/creation/MintingDetails.tsx b/components/collections/creation/MintingDetails.tsx index 1e17ce9..0c308e5 100644 --- a/components/collections/creation/MintingDetails.tsx +++ b/components/collections/creation/MintingDetails.tsx @@ -7,6 +7,7 @@ import { InputDateTime } from 'components/InputDateTime' import { vendingMinterList } from 'config/minter' import type { TokenInfo } from 'config/token' import { stars, tokensList } from 'config/token' +import { useGlobalSettings } from 'contexts/globalSettings' import React, { useEffect, useState } from 'react' import { resolveAddress } from 'utils/resolveAddress' @@ -41,7 +42,7 @@ export const MintingDetails = ({ importedMintingDetails, }: MintingDetailsProps) => { const wallet = useWallet() - + const { timezone } = useGlobalSettings() const [timestamp, setTimestamp] = useState() const [selectedMintToken, setSelectedMintToken] = useState(stars) @@ -103,6 +104,7 @@ export const MintingDetails = ({ paymentAddress: paymentAddressState.value.trim(), selectedMintToken, } + console.log('Timestamp:', timestamp?.getTime()) onChange(data) // eslint-disable-next-line react-hooks/exhaustive-deps }, [ @@ -154,8 +156,29 @@ export const MintingDetails = ({
- - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> diff --git a/components/collections/creation/WhitelistDetails.tsx b/components/collections/creation/WhitelistDetails.tsx index 880bf7b..53d7755 100644 --- a/components/collections/creation/WhitelistDetails.tsx +++ b/components/collections/creation/WhitelistDetails.tsx @@ -9,6 +9,7 @@ import { InputDateTime } from 'components/InputDateTime' import type { WhitelistFlexMember } from 'components/WhitelistFlexUpload' import { WhitelistFlexUpload } from 'components/WhitelistFlexUpload' import type { TokenInfo } from 'config/token' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import React, { useEffect, useState } from 'react' import { isValidAddress } from 'utils/isValidAddress' @@ -48,6 +49,7 @@ export const WhitelistDetails = ({ importedWhitelistDetails, }: WhitelistDetailsProps) => { const wallet = useWallet() + const { timezone } = useGlobalSettings() const [whitelistState, setWhitelistState] = useState('none') const [whitelistType, setWhitelistType] = useState('standard') @@ -329,17 +331,49 @@ export const WhitelistDetails = ({ htmlId="start-date" isRequired subtitle="Start time for minting tokens to whitelisted addresses" - title="Start Time" + title={`Start Time ${timezone === 'Local' ? '(local)' : '(UTC)'}`} > - setStartDate(date)} value={startDate} /> + + setStartDate( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? startDate + : startDate + ? new Date(startDate.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> - setEndDate(date)} value={endDate} /> + + setEndDate( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? endDate + : endDate + ? new Date(endDate.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />
diff --git a/components/openEdition/CollectionDetails.tsx b/components/openEdition/CollectionDetails.tsx index 0118cea..1a07dd9 100644 --- a/components/openEdition/CollectionDetails.tsx +++ b/components/openEdition/CollectionDetails.tsx @@ -1,4 +1,5 @@ /* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ /* eslint-disable jsx-a11y/media-has-caption */ /* eslint-disable @typescript-eslint/no-unnecessary-condition */ /* eslint-disable @typescript-eslint/no-unsafe-argument */ @@ -11,6 +12,7 @@ import { FormGroup } from 'components/FormGroup' import { useInputState } from 'components/forms/FormInput.hooks' import { InputDateTime } from 'components/InputDateTime' import { Tooltip } from 'components/Tooltip' +import { useGlobalSettings } from 'contexts/globalSettings' import { addLogItem } from 'contexts/log' import type { ChangeEvent } from 'react' import { useEffect, useMemo, useRef, useState } from 'react' @@ -53,6 +55,7 @@ export const CollectionDetails = ({ const [timestamp, setTimestamp] = useState() const [explicit, setExplicit] = useState(false) const [updatable, setUpdatable] = useState(false) + const { timezone } = useGlobalSettings() const initialRender = useRef(true) @@ -224,9 +227,25 @@ export const CollectionDetails = ({ className={clsx('mt-2')} htmlId="timestamp" subtitle="Trading start time offset will be set as 2 weeks by default." - title="Trading Start Time (optional)" + title={`Trading Start Time (optional | ${timezone === 'Local' ? 'local)' : 'UTC)'}`} > - setTimestamp(date)} value={timestamp} /> + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />
diff --git a/components/openEdition/MintingDetails.tsx b/components/openEdition/MintingDetails.tsx index 3da1036..0ad9704 100644 --- a/components/openEdition/MintingDetails.tsx +++ b/components/openEdition/MintingDetails.tsx @@ -7,6 +7,7 @@ import { InputDateTime } from 'components/InputDateTime' import { openEditionMinterList } from 'config/minter' import type { TokenInfo } from 'config/token' import { stars, tokensList } from 'config/token' +import { useGlobalSettings } from 'contexts/globalSettings' import React, { useEffect, useState } from 'react' import { resolveAddress } from 'utils/resolveAddress' @@ -44,6 +45,7 @@ export const MintingDetails = ({ const [endTimestamp, setEndTimestamp] = useState() const [selectedMintToken, setSelectedMintToken] = useState(stars) const [mintingDetailsImported, setMintingDetailsImported] = useState(false) + const { timezone } = useGlobalSettings() const unitPriceState = useNumberInputState({ id: 'unitPrice', @@ -142,11 +144,53 @@ export const MintingDetails = ({ - - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> - - setEndTimestamp(date)} value={endTimestamp} /> + + + setEndTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? endTimestamp + : endTimestamp + ? new Date(endTimestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> diff --git a/pages/contracts/badgeHub/execute.tsx b/pages/contracts/badgeHub/execute.tsx index e078be8..df8e043 100644 --- a/pages/contracts/badgeHub/execute.tsx +++ b/pages/contracts/badgeHub/execute.tsx @@ -27,6 +27,7 @@ import { Tooltip } from 'components/Tooltip' import { TransactionHash } from 'components/TransactionHash' import { WhitelistUpload } from 'components/WhitelistUpload' import { useContracts } from 'contexts/contracts' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { Badge } from 'contracts/badgeHub' import type { DispatchExecuteArgs } from 'contracts/badgeHub/messages/execute' @@ -63,6 +64,7 @@ const BadgeHubExecutePage: NextPage = () => { const wallet = useWallet() const [lastTx, setLastTx] = useState('') const [badge, setBadge] = useState() + const { timezone } = useGlobalSettings() const [timestamp, setTimestamp] = useState(undefined) const [transferrable, setTransferrable] = useState(false) @@ -896,8 +898,32 @@ const BadgeHubExecutePage: NextPage = () => {
- - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' + ? date + : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> {showBadgeField && } diff --git a/pages/contracts/baseMinter/execute.tsx b/pages/contracts/baseMinter/execute.tsx index 5288e02..b5855df 100644 --- a/pages/contracts/baseMinter/execute.tsx +++ b/pages/contracts/baseMinter/execute.tsx @@ -12,6 +12,7 @@ import { LinkTabs } from 'components/LinkTabs' import { baseMinterLinkTabs } from 'components/LinkTabs.data' import { TransactionHash } from 'components/TransactionHash' import { useContracts } from 'contexts/contracts' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { DispatchExecuteArgs } from 'contracts/baseMinter/messages/execute' import { dispatchExecute, previewExecutePayload } from 'contracts/baseMinter/messages/execute' @@ -30,6 +31,7 @@ const BaseMinterExecutePage: NextPage = () => { const { baseMinter: contract } = useContracts() const wallet = useWallet() const [lastTx, setLastTx] = useState('') + const { timezone } = useGlobalSettings() const [timestamp, setTimestamp] = useState(undefined) @@ -119,8 +121,29 @@ const BaseMinterExecutePage: NextPage = () => { - - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + // eslint-disable-next-line no-nested-ternary + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />
diff --git a/pages/contracts/baseMinter/instantiate.tsx b/pages/contracts/baseMinter/instantiate.tsx index 1deac6c..354e9f6 100644 --- a/pages/contracts/baseMinter/instantiate.tsx +++ b/pages/contracts/baseMinter/instantiate.tsx @@ -1,3 +1,5 @@ +/* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ import { coin } from '@cosmjs/proto-signing' import { Alert } from 'components/Alert' import { Button } from 'components/Button' @@ -13,6 +15,7 @@ import { JsonPreview } from 'components/JsonPreview' import { LinkTabs } from 'components/LinkTabs' import { baseMinterLinkTabs } from 'components/LinkTabs.data' import { useContracts } from 'contexts/contracts' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { NextPage } from 'next' import { NextSeo } from 'next-seo' @@ -32,6 +35,7 @@ import { resolveAddress } from '../../../utils/resolveAddress' const BaseMinterInstantiatePage: NextPage = () => { const wallet = useWallet() const contract = useContracts().baseFactory + const { timezone } = useGlobalSettings() const [timestamp, setTimestamp] = useState() const [explicit, setExplicit] = useState(false) @@ -204,8 +208,28 @@ const BaseMinterInstantiatePage: NextPage = () => { - - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />
diff --git a/pages/contracts/openEditionMinter/execute.tsx b/pages/contracts/openEditionMinter/execute.tsx index 9c822a6..c5011d2 100644 --- a/pages/contracts/openEditionMinter/execute.tsx +++ b/pages/contracts/openEditionMinter/execute.tsx @@ -1,3 +1,5 @@ +/* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ import { Button } from 'components/Button' import { Conditional } from 'components/Conditional' import { ContractPageHeader } from 'components/ContractPageHeader' @@ -12,6 +14,7 @@ import { LinkTabs } from 'components/LinkTabs' import { openEditionMinterLinkTabs } from 'components/LinkTabs.data' import { TransactionHash } from 'components/TransactionHash' import { useContracts } from 'contexts/contracts' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { DispatchExecuteArgs } from 'contracts/openEditionMinter/messages/execute' import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/openEditionMinter/messages/execute' @@ -31,6 +34,7 @@ const OpenEditionMinterExecutePage: NextPage = () => { const { openEditionMinter: contract } = useContracts() const wallet = useWallet() const [lastTx, setLastTx] = useState('') + const { timezone } = useGlobalSettings() const [timestamp, setTimestamp] = useState(undefined) const [endTimestamp, setEndTimestamp] = useState(undefined) @@ -218,13 +222,55 @@ const OpenEditionMinterExecutePage: NextPage = () => { {showPriceField && } {/* TODO: Fix address execute message */} - - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> - - setEndTimestamp(date)} value={endTimestamp} /> + + + setEndTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? endTimestamp + : endTimestamp + ? new Date(endTimestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />
diff --git a/pages/contracts/vendingMinter/execute.tsx b/pages/contracts/vendingMinter/execute.tsx index b37d37c..11e1f23 100644 --- a/pages/contracts/vendingMinter/execute.tsx +++ b/pages/contracts/vendingMinter/execute.tsx @@ -1,3 +1,5 @@ +/* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ import { Button } from 'components/Button' import { Conditional } from 'components/Conditional' import { ContractPageHeader } from 'components/ContractPageHeader' @@ -12,6 +14,7 @@ import { LinkTabs } from 'components/LinkTabs' import { vendingMinterLinkTabs } from 'components/LinkTabs.data' import { TransactionHash } from 'components/TransactionHash' import { useContracts } from 'contexts/contracts' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { DispatchExecuteArgs } from 'contracts/vendingMinter/messages/execute' import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/vendingMinter/messages/execute' @@ -31,6 +34,7 @@ const VendingMinterExecutePage: NextPage = () => { const { vendingMinter: contract } = useContracts() const wallet = useWallet() const [lastTx, setLastTx] = useState('') + const { timezone } = useGlobalSettings() const [timestamp, setTimestamp] = useState(undefined) const [resolvedRecipientAddress, setResolvedRecipientAddress] = useState('') @@ -228,8 +232,31 @@ const VendingMinterExecutePage: NextPage = () => { {showPriceField && } {/* TODO: Fix address execute message */} - - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />
diff --git a/pages/contracts/vendingMinter/instantiate.tsx b/pages/contracts/vendingMinter/instantiate.tsx index 7c48f12..7e5428a 100644 --- a/pages/contracts/vendingMinter/instantiate.tsx +++ b/pages/contracts/vendingMinter/instantiate.tsx @@ -1,3 +1,5 @@ +/* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ import { coin } from '@cosmjs/proto-signing' import { Alert } from 'components/Alert' import { Button } from 'components/Button' @@ -13,6 +15,7 @@ import { JsonPreview } from 'components/JsonPreview' import { LinkTabs } from 'components/LinkTabs' import { vendingMinterLinkTabs } from 'components/LinkTabs.data' import { useContracts } from 'contexts/contracts' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { NextPage } from 'next' import { NextSeo } from 'next-seo' @@ -31,6 +34,7 @@ import type { CreateVendingMinterResponse } from '../../../contracts/vendingFact const VendingMinterInstantiatePage: NextPage = () => { const wallet = useWallet() const contract = useContracts().vendingFactory + const { timezone } = useGlobalSettings() const [startDate, setStartDate] = useState(undefined) const [timestamp, setTimestamp] = useState() @@ -267,8 +271,28 @@ const VendingMinterInstantiatePage: NextPage = () => { - - setTimestamp(date)} value={timestamp} /> + + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />
@@ -327,8 +351,29 @@ const VendingMinterInstantiatePage: NextPage = () => { - - setStartDate(date)} value={startDate} /> + + + setStartDate( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? startDate + : startDate + ? new Date(startDate.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> diff --git a/pages/contracts/whitelist/execute.tsx b/pages/contracts/whitelist/execute.tsx index b085b05..8958d3b 100644 --- a/pages/contracts/whitelist/execute.tsx +++ b/pages/contracts/whitelist/execute.tsx @@ -23,6 +23,7 @@ import type { WhitelistFlexMember } from 'components/WhitelistFlexUpload' import { WhitelistFlexUpload } from 'components/WhitelistFlexUpload' import { WhitelistUpload } from 'components/WhitelistUpload' import { useContracts } from 'contexts/contracts' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { DispatchExecuteArgs } from 'contracts/whitelist/messages/execute' import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/whitelist/messages/execute' @@ -42,6 +43,7 @@ import { links } from 'utils/links' const WhitelistExecutePage: NextPage = () => { const { whitelist: contract } = useContracts() const wallet = useWallet() + const { timezone } = useGlobalSettings() const [lastTx, setLastTx] = useState('') const [memberList, setMemberList] = useState([]) @@ -238,10 +240,28 @@ const WhitelistExecutePage: NextPage = () => { - setTimestamp(date)} value={timestamp} /> + + setTimestamp( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? timestamp + : timestamp + ? new Date(timestamp.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> diff --git a/pages/contracts/whitelist/instantiate.tsx b/pages/contracts/whitelist/instantiate.tsx index b470bea..8db1be9 100644 --- a/pages/contracts/whitelist/instantiate.tsx +++ b/pages/contracts/whitelist/instantiate.tsx @@ -1,3 +1,5 @@ +/* eslint-disable eslint-comments/disable-enable-pair */ +/* eslint-disable no-nested-ternary */ import { coin } from '@cosmjs/proto-signing' import { Alert } from 'components/Alert' import { Button } from 'components/Button' @@ -16,6 +18,7 @@ import { whitelistLinkTabs } from 'components/LinkTabs.data' import { type WhitelistFlexMember, WhitelistFlexUpload } from 'components/WhitelistFlexUpload' import { WhitelistUpload } from 'components/WhitelistUpload' import { useContracts } from 'contexts/contracts' +import { useGlobalSettings } from 'contexts/globalSettings' import { useWallet } from 'contexts/wallet' import type { InstantiateResponse } from 'contracts/sg721' import type { NextPage } from 'next' @@ -33,6 +36,7 @@ import { WHITELIST_CODE_ID, WHITELIST_FLEX_CODE_ID } from '../../../utils/consta const WhitelistInstantiatePage: NextPage = () => { const wallet = useWallet() const { whitelist: contract } = useContracts() + const { timezone } = useGlobalSettings() const [startDate, setStartDate] = useState(undefined) const [endDate, setEndDate] = useState(undefined) @@ -265,11 +269,53 @@ const WhitelistInstantiatePage: NextPage = () => { - - setStartDate(date)} value={startDate} /> + + + setStartDate( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? startDate + : startDate + ? new Date(startDate.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + /> - - setEndDate(date)} value={endDate} /> + + + setEndDate( + timezone === 'Local' ? date : new Date(date.getTime() - new Date().getTimezoneOffset() * 60 * 1000), + ) + } + value={ + timezone === 'Local' + ? endDate + : endDate + ? new Date(endDate.getTime() + new Date().getTimezoneOffset() * 60 * 1000) + : undefined + } + />