From b93d2b268324ebe0f62109bfa122c2432dac0c4d Mon Sep 17 00:00:00 2001 From: jonty007 Date: Tue, 28 Jan 2025 17:04:41 +0530 Subject: [PATCH 1/4] lint fixes --- packages/explorer/src/components/Block.tsx | 12 ++- packages/explorer/src/components/Card.tsx | 2 +- packages/explorer/src/components/Module.tsx | 1 + .../explorer/src/components/SearchBar.tsx | 2 +- .../src/components/TypeSelectionDropdown.tsx | 12 ++- .../src/components/playground/CreateNew.tsx | 7 +- .../components/playground/DeployModule.tsx | 6 +- .../playground/ExecuteExpression.tsx | 6 +- .../src/components/playground/Playground.tsx | 12 ++- .../src/components/playground/examples.ts | 2 +- packages/explorer/src/utils.ts | 12 ++- packages/nft/src/components/Gallery.tsx | 16 +++- packages/nft/src/components/Nft.tsx | 2 +- packages/wallet/src/components/Card.tsx | 7 -- .../src/components/TypeSelectionDropdown.tsx | 84 ------------------- packages/website/src/App.tsx | 10 +-- packages/website/src/Footer.tsx | 2 +- 17 files changed, 78 insertions(+), 117 deletions(-) delete mode 100644 packages/wallet/src/components/Card.tsx delete mode 100644 packages/wallet/src/components/TypeSelectionDropdown.tsx diff --git a/packages/explorer/src/components/Block.tsx b/packages/explorer/src/components/Block.tsx index af9453740..a50fe7c8d 100644 --- a/packages/explorer/src/components/Block.tsx +++ b/packages/explorer/src/components/Block.tsx @@ -8,7 +8,15 @@ function Block() { const params = useParams() const computer = useContext(ComputerContext) const [block] = useState(params.block) - const [blockData, setBlockData] = useState(null) + const [blockData, setBlockData] = useState<{ + hash: string + time: string + size: string + weight: string + previousblockhash: string + nextblockhash: string + tx: { txid: string }[] + } | null>(null) const { showSnackBar, showLoader } = UtilsContext.useUtilsComponents() useEffect(() => { @@ -118,7 +126,7 @@ function Block() { - {blockData?.tx?.map((txn: any) => ( + {blockData?.tx?.map((txn: { txid: string }) => (
{content}
diff --git a/packages/explorer/src/components/Module.tsx b/packages/explorer/src/components/Module.tsx index 195344107..4856b8cef 100644 --- a/packages/explorer/src/components/Module.tsx +++ b/packages/explorer/src/components/Module.tsx @@ -8,6 +8,7 @@ function Module() { const computer = useContext(ComputerContext) const params = useParams() const [modSpec] = useState(params.rev) + // eslint-disable-next-line const [module, setModule] = useState({}) const { showSnackBar } = UtilsContext.useUtilsComponents() diff --git a/packages/explorer/src/components/SearchBar.tsx b/packages/explorer/src/components/SearchBar.tsx index 00ea98910..34718d855 100644 --- a/packages/explorer/src/components/SearchBar.tsx +++ b/packages/explorer/src/components/SearchBar.tsx @@ -16,7 +16,7 @@ export function SearchBar() { try { await computer.load(searchInput) navigate(`/modules/${searchInput}`) - } catch (error) { + } catch { navigate(`/objects/${searchInput}`) } } else if (isValidHexadecimalPublicKey(searchInput)) diff --git a/packages/explorer/src/components/TypeSelectionDropdown.tsx b/packages/explorer/src/components/TypeSelectionDropdown.tsx index 518ac9acc..a464ff9b7 100644 --- a/packages/explorer/src/components/TypeSelectionDropdown.tsx +++ b/packages/explorer/src/components/TypeSelectionDropdown.tsx @@ -2,7 +2,17 @@ import { Dropdown, initFlowbite } from 'flowbite' import type { DropdownOptions, DropdownInterface, InstanceOptions } from 'flowbite' import { useEffect, useState } from 'react' -export const TypeSelectionDropdown = ({ id, onSelectMethod, dropdownList, selectedType }: any) => { +export const TypeSelectionDropdown = ({ + id, + onSelectMethod, + dropdownList, + selectedType, +}: { + id: string + onSelectMethod: (option: string) => void + dropdownList: string[] + selectedType: string +}) => { const [dropDown, setDropdown] = useState() const [type, setType] = useState(selectedType || 'Type') const [dropdownSelectionList] = useState(dropdownList) diff --git a/packages/explorer/src/components/playground/CreateNew.tsx b/packages/explorer/src/components/playground/CreateNew.tsx index 199c58421..e4885a45b 100644 --- a/packages/explorer/src/components/playground/CreateNew.tsx +++ b/packages/explorer/src/components/playground/CreateNew.tsx @@ -14,7 +14,8 @@ interface Argument { const CreateNew = (props: { computer: Computer - setShow: Dispatch> + setShow: (flag: boolean) => void + // eslint-disable-next-line setFunctionResult: Dispatch> setModalTitle: Dispatch> exampleCode: string @@ -112,6 +113,7 @@ const CreateNew = (props: { const { tx } = await computer.encode(encodeObject) const txId = await computer.broadcast(tx) sleep(500) + // eslint-disable-next-line const { res } = (await computer.sync(txId)) as any setFunctionResult({ _rev: res._rev, type: 'objects' }) setModalTitle('Success!') @@ -121,7 +123,7 @@ const CreateNew = (props: { setModalTitle('Error!') setShow(true) } - } catch (error: any) { + } catch (error: unknown) { setFunctionResult(getErrorMessage(error)) setModalTitle('Error!') setShow(true) @@ -139,6 +141,7 @@ const CreateNew = (props: { placeholder="Enter your JS class and code here" rows={16} className="block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white font-mono" // Added font-mono for monospaced font + // eslint-disable-next-line style={{ tabSize: 2, MozTabSize: 2, OTabSize: 2, WebkitTabSize: 2 } as any} // Set tab size to 2 spaces spellCheck="false" // Disable spell check autoCapitalize="none" // Disable auto capitalization diff --git a/packages/explorer/src/components/playground/DeployModule.tsx b/packages/explorer/src/components/playground/DeployModule.tsx index f33195ce7..0de587081 100644 --- a/packages/explorer/src/components/playground/DeployModule.tsx +++ b/packages/explorer/src/components/playground/DeployModule.tsx @@ -5,7 +5,8 @@ import { getErrorMessage } from '../../utils' const DeployModule = (props: { computer: Computer - setShow: Dispatch> + setShow: (flag: boolean) => void + // eslint-disable-next-line setFunctionResult: Dispatch> setModalTitle: Dispatch> exampleModule: string @@ -25,7 +26,7 @@ const DeployModule = (props: { setFunctionResult({ _rev: modSpec, type: 'modules' }) setModalTitle('Success!') setShow(true) - } catch (error: any) { + } catch (error: unknown) { setFunctionResult(getErrorMessage(error)) setModalTitle('Error!') setShow(true) @@ -43,6 +44,7 @@ const DeployModule = (props: { placeholder="Enter your module here" rows={16} className="block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white font-mono" // Added font-mono for monospaced font + // eslint-disable-next-line style={{ tabSize: 2, MozTabSize: 2, OTabSize: 2, WebkitTabSize: 2 } as any} // Set tab size to 2 spaces spellCheck="false" // Disable spell check autoCapitalize="none" // Disable auto capitalization diff --git a/packages/explorer/src/components/playground/ExecuteExpression.tsx b/packages/explorer/src/components/playground/ExecuteExpression.tsx index fda1734bd..d622f790d 100644 --- a/packages/explorer/src/components/playground/ExecuteExpression.tsx +++ b/packages/explorer/src/components/playground/ExecuteExpression.tsx @@ -13,7 +13,8 @@ interface ExpressionArgument { const ExecuteExpression = (props: { computer: Computer - setShow: Dispatch> + setShow: (flag: boolean) => void + // eslint-disable-next-line setFunctionResult: Dispatch> setModalTitle: Dispatch> exampleExpression: string @@ -90,7 +91,7 @@ const ExecuteExpression = (props: { setFunctionResult({ _rev: `${txId}:0`, type: 'objects', res: effect.res }) setModalTitle('Success!') setShow(true) - } catch (error: any) { + } catch (error: unknown) { setFunctionResult(getErrorMessage(error)) setModalTitle('Error!') setShow(true) @@ -108,6 +109,7 @@ const ExecuteExpression = (props: { placeholder="Enter expression here" rows={16} className="block p-2.5 w-full text-sm text-gray-900 bg-gray-50 rounded-lg border border-gray-300 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white font-mono" // Added font-mono for monospaced font + // eslint-disable-next-line style={{ tabSize: 2, MozTabSize: 2, OTabSize: 2, WebkitTabSize: 2 } as any} // Set tab size to 2 spaces spellCheck="false" // Disable spell check autoCapitalize="none" // Disable auto capitalization diff --git a/packages/explorer/src/components/playground/Playground.tsx b/packages/explorer/src/components/playground/Playground.tsx index 443f7699e..a128e2ff8 100644 --- a/packages/explorer/src/components/playground/Playground.tsx +++ b/packages/explorer/src/components/playground/Playground.tsx @@ -127,14 +127,20 @@ const Tabs = () => ( const Playground = () => { const [computer] = useState(Auth.getComputer()) - const [functionResult, setFunctionResult] = useState({}) + const [functionResult, setFunctionResult] = useState({}) const [exampleCode, setExampleCode] = useState('') const [exampleExpression, setExampleExpresion] = useState('') const [exampleModule, setExampleModule] = useState('') - const [exampleVars, setExampleVars] = useState([]) + const [exampleVars, setExampleVars] = useState< + { + name: string + type: string + value: string + }[] + >([]) const [modalTitle, setModalTitle] = useState('') - const setShow: any = (flag: boolean) => { + const setShow = (flag: boolean): void => { if (flag) { Modal.get(modalId).show() } else { diff --git a/packages/explorer/src/components/playground/examples.ts b/packages/explorer/src/components/playground/examples.ts index 87e2f97c6..6c052358b 100644 --- a/packages/explorer/src/components/playground/examples.ts +++ b/packages/explorer/src/components/playground/examples.ts @@ -87,7 +87,7 @@ export const tokenVars = (pubKey: string) => [ { name: 'supply', type: 'number', - value: 100, + value: '100', }, { name: 'to', diff --git a/packages/explorer/src/utils.ts b/packages/explorer/src/utils.ts index 6cb009c6a..a7718889a 100644 --- a/packages/explorer/src/utils.ts +++ b/packages/explorer/src/utils.ts @@ -111,7 +111,15 @@ export interface ErrorResponse { message?: string } -export const getErrorMessage = (error: ErrorResponse): string => { +const isErrorResponse = (error: unknown): error is ErrorResponse => { + return typeof error === 'object' +} + +export const getErrorMessage = (error: ErrorResponse | unknown): string => { + if (!isErrorResponse(error)) { + return 'Error occurred' + } + if ( error?.response?.data?.error === 'mandatory-script-verify-flag-failed (Operation not valid with the current stack size)' @@ -123,7 +131,7 @@ export const getErrorMessage = (error: ErrorResponse): string => { return error?.response?.data?.error } - return error.message ? error.message : 'Error occurred' + return error instanceof Error ? error.message : 'Error occurred' } // https://github.com/GoogleChromeLabs/jsbi/issues/30 diff --git a/packages/nft/src/components/Gallery.tsx b/packages/nft/src/components/Gallery.tsx index 285bc84b7..6e39457f5 100644 --- a/packages/nft/src/components/Gallery.tsx +++ b/packages/nft/src/components/Gallery.tsx @@ -5,6 +5,7 @@ import { initFlowbite } from 'flowbite' import { ComputerContext, UtilsContext } from '@bitcoin-computer/components' import { NFT } from '@bitcoin-computer/TBC721' +// eslint-disable-next-line export type Class = new (...args: any) => any export type UserQuery = Partial<{ @@ -46,7 +47,7 @@ function NFTCard({ nft }: { nft: NFT | undefined }) { ) } -function HomePageCard({ content }: any) { +function HomePageCard({ content }: { content: string | (() => JSX.Element) }) { return (
@@ -171,7 +172,18 @@ function FromRevs({ revs, computer }: { revs: string[]; computer: Computer }) {
   )
 }
 
-function Pagination({ isPrevAvailable, handlePrev, isNextAvailable, handleNext }: any) {
+function Pagination({
+  isPrevAvailable,
+  handlePrev,
+  isNextAvailable,
+  handleNext,
+}: {
+  isPrevAvailable: boolean
+  handlePrev: () => Promise
+  isNextAvailable: boolean
+  handleNext: () => Promise
+  revs: string[]
+}) {
   return (