// Copyright 2019-2025 @pezkuwi/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { SignerPayloadJSON } from '@pezkuwi/types/types';
import React, { useCallback, useContext, useEffect, useState } from 'react';
import { Loading, SigningReqContext } from '../../components/index.js';
import { useTranslation } from '../../hooks/index.js';
import { Header } from '../../partials/index.js';
import Request from './Request/index.js';
import TransactionIndex from './TransactionIndex.js';
export default function Signing (): React.ReactElement {
const { t } = useTranslation();
const requests = useContext(SigningReqContext);
const [requestIndex, setRequestIndex] = useState(0);
const _onNextClick = useCallback(
() => setRequestIndex((requestIndex) => requestIndex + 1),
[]
);
const _onPreviousClick = useCallback(
() => setRequestIndex((requestIndex) => requestIndex - 1),
[]
);
useEffect(() => {
setRequestIndex(
(requestIndex) => requestIndex < requests.length
? requestIndex
: requests.length - 1
);
}, [requests]);
// protect against removal overflows/underflows
const request = requests.length !== 0
? requestIndex >= 0
? requestIndex < requests.length
? requests[requestIndex]
: requests[requests.length - 1]
: requests[0]
: null;
const isTransaction = !!((request?.request?.payload as SignerPayloadJSON)?.blockNumber);
return request
? (
<>
{requests.length > 1 && (
)}
>
)
: ;
}