Page MenuHomePhabricator

[Cashtab] Improve UI for SendToken screen
ClosedPublic

Authored by bytesofman on Mar 29 2024, 23:51.

Details

Reviewers
emack
Group Reviewers
Restricted Project
Commits
rABC9041b1957f3e: [Cashtab] Improve UI for SendToken screen
Summary

T3491

UI improvements for SendToken screen.

More improvements are still available --- for example, plan to show the whole airdrop form on that switch --- but the changes here are enough for one diff. Still, please comment any further improvements or better ways to implement what is in this diff.

The rest of the Airdrop improvements are pending T3494, then will be in its own diff

Test Plan

npm test, comment on potential further improvements

image.png (665×484 px, 77 KB)

image.png (665×484 px, 70 KB)

image.png (665×484 px, 73 KB)

image.png (795×498 px, 90 KB)

flexbox stacks at smaller widths. here's 320px:

image.png (568×322 px, 46 KB)

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Failed tests logs:

====== CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast ======
Error: Unable to find role="button" and name `/Burn/`

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-BngTV doHiuU"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-sdtwF fPpVjF"
          >
            <div
              class="sc-iYUSvU lnnbfG"
            >
              <div
                class="sc-cqpYsc fJhppR"
              >
                <div
                  class="sc-cHSUfg kKypvL"
                >
                  <img
                    alt="cashtab"
                    class="sc-cTjmhe zLzOQ"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-bbmXgH fLVOGg"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-dvCyap hyKtDv"
                  >
                    <select
                      class="sc-iFMziU gZMIed"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-keVrkP jUbUGe"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-hMqMXs cAbGIb"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <div
                      class="sc-cbkKFq kafXIW"
                    >
                      <input
                        checked=""
                        class="sc-dUjcNx iGuFyy"
                        data-testid="show-hide-balance"
                        id="show-hide-balance"
                        name="show-hide-balance"
                        type="checkbox"
                      />
                      <label
                        class="sc-krvtoX icJQVK"
                        for="show-hide-balance"
                      >
                        <span
                          class="sc-fYiAbW iQspdk"
                          data-off=""
                          data-on=""
                        />
                        <span
                          class="sc-fOKMvo bLueJI"
                        />
                      </label>
                    </div>
                  </div>
                  <div
                    class="sc-gVLVqr bgXAoO"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-cBdUnI hGgKrA"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-exkUMo iJrUTx"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <div
                class="sc-jqCOkK dpFugr"
              >
                <div
                  class="sc-ipXKqB koztfj"
                >
                  1
                   
                  BEAR
                </div>
                <div
                  class="sc-dliRfk efqxyy"
                >
                  <div
                    class="sc-kLIISr cseIZc"
                  >
                    <div
                      class="sc-qrIAp kHgJfI"
                    >
                      <div
                        class="sc-hMqMXs cAbGIb"
                      >
                        <img
                          height="128"
                          src="https://icons.etokens.cash/128/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109.png"
                          width="128"
                        />
                      </div>
                    </div>
                    <div
                      class="sc-qrIAp kHgJfI"
                    >
                      <div
                        class="sc-kLIISr cseIZc"
                      >
                        <div
                          class="sc-qrIAp kHgJfI"
                        >
                          Token Id: 
                          3fe
                          ...
                          109
                        </div>
                        <div
                          class="sc-qrIAp kHgJfI"
                        >
                          <div
                            class="sc-hMqMXs cAbGIb"
                          >
                            <svg
                              class="sc-htoDjs dHRdfz"
                            />
                          </div>
                        </div>
                      </div>
                      <div
                        class="sc-kLIISr cseIZc"
                      >
                        <div
                          class="sc-qrIAp kHgJfI"
                        >
                          0
                           decimal places
                        </div>
                      </div>
                      <div
                        class="sc-kLIISr cseIZc"
                      />
                      <div
                        class="sc-kLIISr cseIZc"
                      >
                        Minted
                         
                        Mar 29, 2024
                      </div>
                      <div
                        class="sc-kLIISr cseIZc"
                      >
                        Genesis Supply:
                         
                        4,444
                      </div>
                      <div
                        class="sc-kLIISr cseIZc"
                      >
                        Fixed Supply
                      </div>
                    </div>
                  </div>
                </div>
                <div
                  class="sc-hmXxxW havVIs"
                >
                  <div
                    class="sc-iqzUVk blbJfl"
                  >
                    <div
                      class="sc-cbkKFq iPboiX"
                    >
                      <input
                        checked=""
                        class="sc-dUjcNx iGuFyy"
                        data-testid="send-switch"
                        id="send-switch"
                        name="send-switch"
                        type="checkbox"
                      />
                      <label
                        class="sc-krvtoX icJQVK"
                        for="send-switch"
                      >
                        <span
                          class="sc-fYiAbW PUzjy"
                          data-off="➡️"
                          data-on="➡️"
                        />
                        <span
                          class="sc-fOKMvo cgoBOq"
                        />
                      </label>
                    </div>
                    <div
                      class="sc-ktHwxA ShtVE"
                    >
                      Send 
                      BearNip
                       (
                      BEAR
                      )
                    </div>
                  </div>
                  <div
                    class="sc-cqCuEk hsRRCd"
                  >
                    <div
                      class="sc-bsbRJL iObtTW"
                    >
                      <div
                        class="sc-hZSUBg btoVVS"
                      >
                        <input
                          class="sc-cMhqgX sc-cmthru bsOeBa"
                          name="address"
                          placeholder="Address"
                          value=""
                        />
                        <button
                          class="sc-hXRMBi blORgK"
                          data-testid="scan-qr-code"
                        >
                          <svg />
                        </button>
                      </div>
                      <div
                        class="sc-bMVAic eHWKGS"
                      />
                    </div>
                  </div>
                  <div
                    class="sc-cqCuEk hsRRCd"
                  >
                    <div
                      class="sc-iGrrsa efpJkV"
                    >
                      <a
                        class="sc-dNLxif idXNLy"
                        href="https://explorer.e.cash/address/false"
                        rel="noreferrer"
                        target="_blank"
                      />
                    </div>
                  </div>
                  <div
                    class="sc-cqCuEk hsRRCd"
                  >
                    <div
                      class="sc-bsbRJL iObtTW"
                    >
                      <div
                        class="sc-hZSUBg btoVVS"
                      >
                        <input
                          class="sc-cMhqgX sc-cmthru bsOeBa"
                          name="amount"
                          placeholder="Amount"
                          step="1"
                          type="number"
                          value=""
                        />
                        <button
                          class="sc-hMFtBS sc-cLQEGU hSzvg"
                        >
                          max
                        </button>
                      </div>
                      <div
                        class="sc-bMVAic eHWKGS"
                      />
                    </div>
                  </div>
                  <div
                    class="sc-cqCuEk hsRRCd"
                  >
                    <button
                      class="sc-RefOD sc-eTuwsz eYjZeR"
                      style="margin-top: 24px;"
                    >
                      Send 
                      BearNip
                    </button>
                  </div>
                  <div
                    class="sc-iqzUVk blbJfl"
                  >
                    <div
                      class="sc-cbkKFq iPboiX"
                    >
                      <input
                        class="sc-dUjcNx iGuFyy"
                        data-testid="airdrop-switch"
                        id="airdrop-switch"
                        name="airdrop-switch"
                        type="checkbox"
                      />
                      <label
                        class="sc-krvtoX icJQVK"
                        for="airdrop-switch"
                      >
                        <span
                          class="sc-fYiAbW PUzjy"
                          data-off="  "
                          data-on="  "
                        />
                        <span
                          class="sc-fOKMvo cgoBOq"
                        />
                      </label>
                    </div>
                    <div
                      class="sc-ktHwxA ShtVE"
                    >
                      Airdrop XEC to 
                      BEAR
                       holders
                    </div>
                  </div>
                  <div
                    class="sc-iqzUVk blbJfl"
                  >
                    <div
                      class="sc-cbkKFq iPboiX"
                    >
                      <input
                        class="sc-dUjcNx iGuFyy"
                        data-testid="burn-switch"
                        id="burn-switch"
                        name="burn-switch"
                        type="checkbox"
                      />
                      <label
                        class="sc-krvtoX icJQVK"
                        for="burn-switch"
                      >
                        <span
                          class="sc-fYiAbW PUzjy"
                          data-off="  "
                          data-on="  "
                        />
                        <span
                          class="sc-fOKMvo cgoBOq"
                        />
                      </label>
                    </div>
                    <div
                      class="sc-ktHwxA ShtVE"
                    >
                      Burn 
                      BearNip
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div
              class="sc-bFADNz ifKXoW"
            >
              <button
                class="sc-cmjSyW kHKRdL"
              >
                <svg />
              </button>
              <button
                class="sc-cmjSyW kHKRdL"
                data-testid="nav-btn-send"
              >
                <svg
                  class="sc-jKJlTe fTQyTm"
                  style="margin-top: -9px;"
                />
              </button>
              <button
                class="sc-cmjSyW kHKRdL"
                data-testid="nav-btn-etokens"
              >
                <span
                  aria-label="appstore-add"
                  class="anticon anticon-appstore-add"
                  role="img"
                  style="font-size: 24px;"
                >
                  <svg
                    aria-hidden="true"
                    data-icon="appstore-add"
                    fill="currentColor"
                    focusable="false"
                    height="1em"
                    viewBox="64 64 896 896"
                    width="1em"
                  >
                    <defs />
                    <path
                      d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zm52 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"
                    />
                  </svg>
                </span>
              </button>
              <button
                class="sc-cmjSyW kHKRdL"
                data-testid="nav-btn-receive"
              >
                <svg />
              </button>
              <div
                class="sc-hBbWxd blgAIW"
                data-testid="hamburger"
              >
                <span
                  class="sc-dyGzUR djjNCp"
                />
                <div
                  class="sc-drKuOJ hhwhRD"
                  data-testid="hamburger-menu"
                >
                  <button
                    class="sc-gRnDUn goUkJF"
                    data-testid="nav-btn-airdrop"
                  >
                     
                    <p>
                      Airdrop
                    </p>
                    <svg
                      height="33px"
                      width="30px"
                    />
                  </button>
                  <button
                    class="sc-gRnDUn goUkJF"
                    data-testid="nav-btn-swap"
                  >
                     
                    <p>
                      Swap
                    </p>
                    <span
                      aria-label="swap"
                      class="anticon anticon-swap"
                      role="img"
                      style="font-size: 24px;"
                    >
                      <svg
                        aria-hidden="true"
                        data-icon="swap"
                        fill="currentColor"
                        focusable="false"
                        height="1em"
                        viewBox="64 64 896 896"
                        width="1em"
                      >
                        <path
                          d="M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"
                        />
                      </svg>
                    </span>
                  </button>
                  <button
                    class="sc-gRnDUn goUkJF"
                    data-testid="nav-btn-signverifymsg"
                  >
                    <p>
                      Sign & Verify
                    </p>
                    <svg
                      class="sc-jzJRlG kclOxT"
                    />
                  </button>
                  <button
                    class="sc-gRnDUn goUkJF"
                    data-testid="nav-btn-configure"
                  >
                    <p>
                      Settings
                    </p>
                    <svg
                      height="33px"
                      width="30px"
                    />
                  </button>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByRole (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:498:39)

Each failure log is accessible here:
CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast

bytesofman edited the summary of this revision. (Show Details)
bytesofman edited the test plan for this revision. (Show Details)
bytesofman edited the test plan for this revision. (Show Details)
emack requested changes to this revision.Mar 30 2024, 08:05
emack added a subscriber: emack.

How do you feel about using a carousel type UI to browse through the list of tokens? It's something that NFT wallets in ethereum uses to great effect because the UI size is ringfenced regardless of how many tokens you have.

e,g. something similar to one of those ancient jukebox music selection machines.
https://flowbite.com/docs/components/carousel/

image.png (349×737 px, 18 KB)

image.png (398×375 px, 356 KB)

Then on the SendToken screen, what about using a Card-like UI component to encapsulate the token info?
https://flowbite.com/docs/components/card/
It makes it feel a bit more like you're dealing with tokens rather than bunch of stats on the blockchain.

cashtab/src/components/Send/SendToken.js
570 ↗(On Diff #46616)

A while back, probably back in late 2021 we had a popover effect where clicking on the icon renders an enlarged version of the icon hovering over the page. Was there a reason this was removed?

575 ↗(On Diff #46616)

Bold these labels

773 ↗(On Diff #46616)

Expand the label as it's not immediately obvious whether this button straightaway airdrops the token supply to holds or if it's navigating to another screen.

811 ↗(On Diff #46616)

Button needs to remain disabled when no burn amount is inputted. At the moment the confirmation modal gets triggered if you just click Burn ticker directly with no input.

813 ↗(On Diff #46616)

needs a space between Burn and the ticker

This revision now requires changes to proceed.Mar 30 2024, 08:05

How do you feel about using a carousel type UI to browse through the list of tokens? It's something that NFT wallets in ethereum uses to great effect because the UI size is ringfenced regardless of how many tokens you have.

beyond the scope of this diff but yes we should improve the token list, this type of UI would be better.

Then on the SendToken screen, what about using a Card-like UI component to encapsulate the token info?

Same. The table is still not great, but it is much better than what we have now. Will be improving and adapting this UI a lot as new features are added.

cashtab/src/components/Send/SendToken.js
570 ↗(On Diff #46616)

yeah this is better, added.

811 ↗(On Diff #46616)

also need to validate for decimals here, but this will be handled separately T3496

bytesofman marked 2 inline comments as done.

show large token icon on click, suggested aesthetic improvements

Failed tests logs:

====== CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Type "burn BEAR" to confirm

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-dyGzUR czDfIB"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-cugefK dojOnP"
          >
            <div
              class="sc-fnwBNb GEXaN"
            >
              <div
                class="sc-gRnDUn hwALWG"
              >
                <div
                  class="sc-iNhVCk gRBPCH"
                >
                  <img
                    alt="cashtab"
                    class="sc-eAKXzc cgVasB"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-bbmXgH fLVOGg"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-cBdUnI jUfzGO"
                  >
                    <select
                      class="sc-exkUMo gYfcvz"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-kcDeIU hxVzCw"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-hMqMXs cAbGIb"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <div
                      class="sc-cbkKFq dbYZYK"
                    >
                      <div
                        class="sc-krvtoX uHAwC"
                      >
                        <input
                          checked=""
                          class="sc-gHboQg jlCboa"
                          data-testid="show-hide-balance"
                          id="show-hide-balance"
                          name="show-hide-balance"
                          type="checkbox"
                        />
                        <label
                          class="sc-fYiAbW gPWTJO"
                          for="show-hide-balance"
                        >
                          <span
                            class="sc-fOKMvo dvvywc"
                            data-off=""
                            data-on=""
                          />
                          <span
                            class="sc-dUjcNx etsZLo"
                          />
                        </label>
                      </div>
                    </div>
                  </div>
                  <div
                    class="sc-BngTV UsZIl"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-bFADNz epeREL"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-cqpYsc eLhFLz"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <div
                class="sc-jqCOkK dpFugr"
              >
                <div
                  class="sc-hmXxxW fkVZQE"
                >
                  1
                   
                  BearNip
                   (
                  BEAR
                  )
                </div>
                <div
                  class="sc-qrIAp ezKcrA"
                >
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    <button
                      class="sc-cqCuEk jUbLaY"
                    >
                      <img
                        height="128"
                        src="https://icons.etokens.cash/128/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109.png"
                        width="128"
                      />
                    </button>
                  </div>
                  <div
                    class="sc-ipZHIp dIEugn"
                  >
                    <div
                      class="sc-iGrrsa kyevqD"
                    >
                      <div
                        class="sc-bmyXtO bJpodt"
                      >
                        Token Id:
                      </div>
                      <div
                        class="sc-ipZHIp dIEugn"
                      >
                        <a
                          href="https://explorer.e.cash/tx/3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109"
                          rel="noopener noreferrer"
                          target="_blank"
                        >
                          3fe
                          ...
                          109
                        </a>
                      </div>
                      <div
                        class="sc-ipZHIp dIEugn"
                      >
                        <div
                          class="sc-hMqMXs cAbGIb"
                        >
                          <svg
                            class="sc-htoDjs dHRdfz"
                            style="margin-top: 8px; font-size: 12px;"
                          />
                        </div>
                      </div>
                    </div>
                    <div
                      class="sc-iGrrsa kyevqD"
                    >
                      <div
                        class="sc-bmyXtO bJpodt"
                      >
                        decimals:
                      </div>
                      <div
                        class="sc-ipZHIp dIEugn"
                      >
                        0
                      </div>
                    </div>
                    <div
                      class="sc-iGrrsa kyevqD"
                    >
                      <div
                        class="sc-bmyXtO bJpodt"
                      >
                        created:
                      </div>
                      <div
                        class="sc-ipZHIp dIEugn"
                      >
                        Mar 30, 2024
                      </div>
                    </div>
                    <div
                      class="sc-iGrrsa kyevqD"
                    >
                      <div
                        class="sc-bmyXtO bJpodt"
                      >
                        Genesis Qty:
                      </div>
                      <div
                        class="sc-ipZHIp dIEugn"
                      >
                        4,444
                      </div>
                    </div>
                    <div
                      class="sc-iGrrsa kyevqD"
                    >
                      <div
                        class="sc-bmyXtO bJpodt"
                      >
                        Supply:
                      </div>
                      <div
                        class="sc-ipZHIp dIEugn"
                      >
                        Fixed
                      </div>
                    </div>
                  </div>
                </div>
                <div
                  class="sc-dliRfk cFvViB"
                >
                  <div
                    class="sc-dEoRIm Izmv"
                  >
                    <div
                      class="sc-cbkKFq dbYZYK"
                    >
                      <div
                        class="sc-krvtoX cCjVJh"
                      >
                        <input
                          checked=""
                          class="sc-gHboQg jlCboa"
                          data-testid="send-switch"
                          id="send-switch"
                          name="send-switch"
                          type="checkbox"
                        />
                        <label
                          class="sc-fYiAbW gPWTJO"
                          for="send-switch"
                        >
                          <span
                            class="sc-fOKMvo jnVFOj"
                            data-off="➡️"
                            data-on="➡️"
                          />
                          <span
                            class="sc-dUjcNx gNgzPv"
                          />
                        </label>
                      </div>
                    </div>
                    <div
                      class="sc-ktHwxA bXhKrb"
                    >
                      Send 
                      BearNip
                       (
                      BEAR
                      )
                    </div>
                  </div>
                  <div
                    class="sc-dEoRIm Izmv"
                  >
                    <div
                      class="sc-cbkKFq dbYZYK"
                    >
                      <div
                        class="sc-krvtoX cCjVJh"
                      >
                        <input
                          class="sc-gHboQg jlCboa"
                          data-testid="airdrop-switch"
                          id="airdrop-switch"
                          name="airdrop-switch"
                          type="checkbox"
                        />
                        <label
                          class="sc-fYiAbW gPWTJO"
                          for="airdrop-switch"
                        >
                          <span
                            class="sc-fOKMvo jnVFOj"
                            data-off="  "
                            data-on="  "
                          />
                          <span
                            class="sc-dUjcNx gNgzPv"
                          />
                        </label>
                      </div>
                    </div>
                    <div
                      class="sc-ktHwxA bXhKrb"
                    >
                      Airdrop XEC to 
                      BEAR
                       holders
                    </div>
                  </div>
                  <div
                    class="sc-dEoRIm Izmv"
                  >
                    <div
                      class="sc-cbkKFq dbYZYK"
                    >
                      <div
                        class="sc-krvtoX cCjVJh"
                      >
                        <input
                          class="sc-gHboQg jlCboa"
                          data-testid="burn-switch"
                          id="burn-switch"
                          name="burn-switch"
                          type="checkbox"
                        />
                        <label
                          class="sc-fYiAbW gPWTJO"
                          for="burn-switch"
                        >
                          <span
                            class="sc-fOKMvo jnVFOj"
                            data-off="  "
                            data-on="  "
                          />
                          <span
                            class="sc-dUjcNx gNgzPv"
                          />
                        </label>
                      </div>
                    </div>
                    <div
                      class="sc-ktHwxA bXhKrb"
                    >
                      Burn 
                      BEAR
                    </div>
                  </div>
                  <div
                    class="sc-iqzUVk iHKDk"
                  >
                    <div
                      class="sc-bAeIUo egGRIh"
                    >
                      <div
                        class="sc-bsbRJL iObtTW"
                      >
                        <div
                          class="sc-hZSUBg btoVVS"
                        >
                          <input
                            class="sc-cMhqgX sc-cmthru bsOeBa"
                            name="burnAmount"
                            placeholder="Burn Amount"
                            step="1"
                            type="number"
                            value=""
                          />
                          <button
                            class="sc-hMFtBS sc-cLQEGU hSzvg"
                          >
                            max
                          </button>
                        </div>
                        <div
                          class="sc-bMVAic eHWKGS"
                        />
                      </div>
                      <button
                        class="sc-RefOD sc-eTuwsz eYjZeR"
                      >
                        Burn 
                        BEAR
                      </button>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div
              class="sc-drKuOJ hgbcjv"
            >
              <button
                class="sc-cTjmhe dIzwTi"
              >
                <svg />
              </button>
              <button
                class="sc-cTjmhe dIzwTi"
                data-testid="nav-btn-send"
              >
                <svg
                  class="sc-jKJlTe fTQyTm"
                  style="margin-top: -9px;"
                />
              </button>
              <button
                class="sc-cTjmhe dIzwTi"
                data-testid="nav-btn-etokens"
              >
                <span
                  aria-label="appstore-add"
                  class="anticon anticon-appstore-add"
                  role="img"
                  style="font-size: 24px;"
                >
                  <svg
                    aria-hidden="true"
                    data-icon="appstore-add"
                    fill="currentColor"
                    focusable="false"
                    height="1em"
                    viewBox="64 64 896 896"
                    width="1em"
                  >
                    <defs />
                    <path
                      d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zm52 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"
                    />
                  </svg>
                </span>
              </button>
              <button
                class="sc-cTjmhe dIzwTi"
                data-testid="nav-btn-receive"
              >
                <svg />
              </button>
              <div
                class="sc-cmjSyW gXSXJB"
                data-testid="hamburger"
              >
                <span
                  class="sc-sdtwF hOawzy"
                />
                <div
                  class="sc-iYUSvU eILlpC"
                  data-testid="hamburger-menu"
                >
                  <button
                    class="sc-cHSUfg ibefUs"
                    data-testid="nav-btn-airdrop"
                  >
                     
                    <p>
                      Airdrop
                    </p>
                    <svg
                      height="33px"
                      width="30px"
                    />
                  </button>
                  <button
                    class="sc-cHSUfg ibefUs"
                    data-testid="nav-btn-swap"
                  >
                     
                    <p>
                      Swap
                    </p>
                    <span
                      aria-label="swap"
                      class="anticon anticon-swap"
                      role="img"
                      style="font-size: 24px;"
                    >
                      <svg
                        aria-hidden="true"
                        data-icon="swap"
                        fill="currentColor"
                        focusable="false"
                        height="1em"
                        viewBox="64 64 896 896"
                        width="1em"
                      >
                        <path
                          d="M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"
                        />
                      </svg>
                    </span>
                  </button>
                  <button
                    class="sc-cHSUfg ibefUs"
                    data-testid="nav-btn-signverifymsg"
                  >
                    <p>
                      Sign & Verify
                    </p>
                    <svg
                      class="sc-jzJRlG kclOxT"
                    />
                  </button>
                  <button
                    class="sc-cHSUfg ibefUs"
                    data-testid="nav-btn-configure"
                  >
                    <p>
                      Settings
                    </p>
                    <svg
                      height="33px"
                      width="30px"
                    />
                  </button>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:507:20)

Each failure log is accessible here:
CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast

need to fix test

Tail of the build log:

Installing mock-chronik-client dependencies...
/work/modules/mock-chronik-client /work/abc-ci-builds/cashtab-tests

added 236 packages, and audited 237 packages in 1s

35 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
/work/cashtab /work/modules/mock-chronik-client /work/abc-ci-builds/cashtab-tests

added 1718 packages, and audited 1719 packages in 29s

262 packages are looking for funding
  run `npm fund` for details

1 moderate severity vulnerability

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> cashtab@2.10.0 build
> node scripts/build.js

Creating an optimized production build...
Failed to compile.

[eslint] 
src/components/Send/SendToken.js
  Line 426:9:  'f' is not defined  no-undef

Search for the keywords to learn more about each error.


Build cashtab-tests failed with exit code 1

Tail of the build log:

Installing mock-chronik-client dependencies...
/work/modules/mock-chronik-client /work/abc-ci-builds/cashtab-tests

added 236 packages, and audited 237 packages in 1s

35 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
/work/cashtab /work/modules/mock-chronik-client /work/abc-ci-builds/cashtab-tests

added 1718 packages, and audited 1719 packages in 29s

262 packages are looking for funding
  run `npm fund` for details

1 moderate severity vulnerability

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> cashtab@2.10.0 build
> node scripts/build.js

Creating an optimized production build...
Failed to compile.

[eslint] 
src/components/Send/SendToken.js
  Line 426:9:  'f' is not defined  no-undef

Search for the keywords to learn more about each error.


Build cashtab-tests failed with exit code 1

note: this is related to the pre-lint push, tests pass now

This revision is now accepted and ready to land.Mar 30 2024, 23:55