utils APIs
- calculateSlippageAmount
- calculateGasMargin
- getRouterContract
- getBscScanLink
- isAddress
- shortenAddress
- getEtherscanLink
- basisPointsToPercent
- getTokenAddress
- copyToClipboard
- deepMergeByKey
- decrypt
- encrypt
- emailErrorMsg
- reqErrorMsg
- debouncePromise
- callbackify
- isValidURL
- hasUserApiEditAccess
- loadThirdPartyScript
- getCurrentWindow
- hashVote
- toEthSignedMessageHash
- MAINNET_ID
- usePrevious
- bnum
- normalizeBalance
- isWalletScheme
- WalletSchemeProposalState
- VotingMachineProposalState
- calculateStakes
- formatBalance
- denormalizeBalance
- PendingAction
- isVoteNo
- isVoteYes
- parseSignedVoteMessage
- toPercentage
- verifySignedVote
- NETWORK_ASSET_SYMBOL
- ZERO_ADDRESS
- enumKeys
- DEFAULT_CHAIN_ID
- useInterval
- getBlockchainLink
- getERC20Token
- getDxVoteContract
- toAddressStub
- getNetworkById
- formatNumberValue
- encodeDxdVestingCreate
- encodeErc20Approval
- encodeErc20Transfer
- encodeRepMint
- TXEvents
- BigNumber
- ZERO_HASH
- ANY_ADDRESS
- ERC20_APPROVE_SIGNATURE
- ERC20_TRANSFER_SIGNATURE
- QUEUED_PRIORITY_THRESHOLD
- NETWORKS
- toCamelCaseString
- ALCHEMY_NETWORK_URLS
- DEFAULT_RPC_URLS
- appendEthAPIKey
- NETWORK_APIS
- INFURA_NETWORK_NAMES
- POKT_NETWORK_URLS
- constants
- session
- displayFromWei
- getBigNumber
- getSupplyCap
- getAllowance
- approve
- fromWei
- getFullDisplayBalance
- getLibrary
- maxAmountSpend
- addMaticToMetamask
- returnTokenFromKey
- isSupportedNetwork
- formatTokenAmount
- formatCompact
- formatNumber
- isTokensOnList
- getAPYWithFee
- getRewardRate
- getStakedAmountStakingInfo
- getTVLStaking
- getEarnedUSDLPFarm
- getEarnedUSDDualFarm
- formatAPY
- getUSDString
- formatMulDivTokenAmount
- getExactTokenAmount
- escapeRegExp
- currencyId
- getOneYearFee
- returnStakingInfo
- getAllTokensOnUniswap
- getAllPairsOnUniswap
- getSecondsOneDay
- getValueTokenDecimals
- getPartialTokenAmount
- confirmPriceImpactWithoutFee
- halfAmountSpend
- getTokenInfo
- getEthPrice
- getIntervalTokenData
- getTokenAPRSyrup
- getEarnedUSDSyrup
- getFormattedPrice
- getPriceColor
- getTopTokens
- shortenTx
- getContract
- isZero
- getChartData
- getChartDates
- getChartStartTime
- getLimitedData
- getTopPairs
- getGlobalData
- getBulkPairData
- formatDateFromTimeStamp
- getPairChartData
- getYAXISValuesAnalytics
- getPairTransactions
- getTokenChartData
- getTokenPairs2
- useLairDQUICKAPY
- getPageItemsToLoad
- returnFullWidthMobile
- returnDualStakingInfo
- getDaysCurrentYear
- getTokenPairs
- getBlockFromTimestamp
- getFarmLPToken
- getSyrupLPToken
- initTokenAmountFromCallResult
- returnSyrupInfo
- getCallStateResult
- notEmpty
- DEFAULT_TO_CHAIN_ID
- CHAINS
- UnsupportedChainIdError
- switchChain
- showMigrationBanner
- isValidAddress
- ChainId
- COLORS
- QUERIES
- onboard
- disableSendForm
- max
- parseUnits
- formatUnits
- ParsingError
- TOKENS_LIST
- Token
- blockLiquidity
- migrationPoolV2Warning
- formatEtherRaw
- numberFormatter
- estimateGasForAddEthLiquidity
- DEFAULT_ADD_LIQUIDITY_ETH_GAS_ESTIMATE
- UPDATE_GAS_INTERVAL_MS
- toWeiSafe
- addEtherscan
- receiveAmount
- getEstimatedDepositTime
- DEFAULT_FROM_CHAIN_ID
- formatEther
- PROVIDERS
- getRelayFees
- getLpFee
- isSupportedChainId
- getAddress
- getDepositBox
- TransactionError
- MAX_APPROVAL_AMOUNT
- optimismErc20Pairs
- bobaErc20Pairs
- tagAddress
- validateContractAndChain
- multicallTwoAddress
- IChainSelection
- CHAINS_SELECTION
- onboardBaseConfig
- getConfirmationDepositTime
- shortenAddressLong
- timeAgo
- textareaAutoResize
- initOAuthWindow
- parseURL
- scrollToBottom
- isUrl
- get_url_extension
- wait
- b64_to_utf8
- utf8_to_b64
- callDelayer
- useKeyboardDidShow
- capitalizedCase
- getCoinSymbol
- getCountryName
- getTransactionStatusColor
- useAlert
- scaleSpacing
- getActiveCase
- changeBodyTheme
- getPercentage
- metaGenerator
- useFetch
- visualize
- worldLegends
- dateFormat
- getPerDayStats
- API_BASEURL
- API_INDONESIA
- indonesiaLegends
- getActiveCaseID
- isWsAddress
- constructApiDescriptionObject
- encodeURI
- NOOP
- isLoggedIn
- getBalance
- getAccount
- isTokenOnList
- formatAddressShort
- requiresTypeSlug
- getNextOffchainPollEndingTime
- slugify
- slugifyPreserveDashes
- setupSwagger
- isBlindMode
- getExplorerLink
- isCountdown
- showVvsPrice
- getCookies
- iconFromMIME
- makeRangeArray
- exitIfMaintenance
- sanitizeHtmlString
- parseDate
- retryWrapper
- batchPromises
- arrayPartitions
- sleep
- checkKeyboardTrigger
- clampValue
- debounce
- normalize
- strToInt
- getFromLocalStorage
- saveToLocalStorage
- generateTagColors
- formatNumberWithCommas
- memoize
- calculateTotalInvestment
- throttle
- urlParametersState
- mmddyyyy2ddmmyyy
- sortStringDates
- gtag
- compactNumberFormatter
- getNumberSign
- getLastArrayElement
- fillArrayUntil
- capitalizeFirstLetter
- buildUrl
- XmlWrapper
- XmlTemplate
- setCookie
Other Related APIs
utils#textareaAutoResize TypeScript Examples
The following examples show how to use
utils#textareaAutoResize.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MessageInput.tsx From convoychat with GNU General Public License v3.0 | 4 votes |
MessageInput: MessageInputType = ({
value,
innerRef,
onCancel,
handleSubmit,
handleChange,
onEmojiClick,
mentionSuggestions,
setValue,
...props
}) => {
const isMobile = !mql.matches;
const formRef = useRef<HTMLFormElement>();
const textareaRef = useRef<HTMLTextAreaElement>();
const suggestionsData = useRef<ISuggestionsData>();
const {
open,
getRootProps,
isDragActive,
getInputProps,
uploadImageInProgress,
} = useImageUpload({
value,
setValue,
});
const imparativeSubmit = (event: any) => {
event.preventDefault();
formRef?.current.dispatchEvent(new Event("submit", { cancelable: true }));
};
const handleKeydown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {
if (event.key === "Escape") {
onCancel && onCancel();
}
if (isMobile) return;
if (event.key === "Enter" && !event.shiftKey) {
imparativeSubmit(event);
}
};
const getRef: any = (e: any) => {
textareaRef.current = e;
if (innerRef) {
innerRef.current = e;
}
};
useEffect(() => {
textareaAutoResize(textareaRef?.current);
}, [value]);
useEffect(() => {
suggestionsData.current = mentionSuggestions?.map(curr => {
return {
display: curr.username,
id: curr.id,
};
});
}, [mentionSuggestions]);
return (
<MessageInputWrapper className="message__input">
<Flex gap="large" align="center" justify="space-between" nowrap>
<IconButton
onClick={open}
icon={<FaImage />}
data-testid="upload-button"
isLoading={uploadImageInProgress}
/>
<form
ref={formRef}
onSubmit={handleSubmit}
className={isDragActive ? "active-animation" : ""}
>
<div {...getRootProps({ className: "dropzone" })}>
<MentionsInput
data-testid="messageInput"
name={"message"}
inputRef={getRef}
autoComplete={"off"}
placeholder="Write something"
value={value}
onChange={handleChange}
onKeyDown={handleKeydown}
style={defaultMentionStyles}
allowSuggestionsAboveCursor={true}
{...props}
>
<Mention
trigger="@"
data={suggestionsData?.current || []}
displayTransform={id =>
`@${suggestionsData.current.find(i => i.id === id).display} `
}
/>
</MentionsInput>
<input {...getInputProps()} data-testid="dropzone" />
</div>
</form>
{isMobile && (
<SendButton
icon={FaPaperPlane}
onClick={imparativeSubmit}
className="input__send-button"
/>
)}
{!isMobile && (
<Dropdown>
<Dropdown.Toggle>
<IconButton icon={<FaSmile />} />
</Dropdown.Toggle>
<Dropdown.Content style={{ position: "absolute", bottom: 0 }}>
<Picker
set="apple"
theme="dark"
onSelect={(emoji: any) => onEmojiClick && onEmojiClick(emoji)}
/>
</Dropdown.Content>
</Dropdown>
)}
</Flex>
</MessageInputWrapper>
);
}