// Copyright 2017-2026 @pezkuwi/app-explorer authors & contributors // SPDX-License-Identifier: Apache-2.0 import React, { useCallback, useState } from 'react'; import { Button, FilterOverlay, Input, styled } from '@pezkuwi/react-components'; import { isHex } from '@pezkuwi/util'; import { useTranslation } from './translate.js'; interface Props { className?: string; value?: string; } interface State { value: string; isValid: boolean; } function stateFromValue (value: string): State { return { isValid: isHex(value, 256) || /^\d+$/.test(value), value }; } function Query ({ className = '', value: propsValue }: Props): React.ReactElement { const { t } = useTranslation(); const [{ isValid, value }, setState] = useState(() => stateFromValue(propsValue || '')); const _setHash = useCallback( (value: string): void => setState(stateFromValue(value)), [] ); const _onQuery = useCallback( (): void => { if (isValid && value.length !== 0) { window.location.hash = `/explorer/query/${value}`; } }, [isValid, value] ); return (