<template>
  <q-page>
    <div
      v-if="renderComponent"
      id="container"
      style="width: 100%"
      ref="pay"
    ></div>
  </q-page>
</template>

<script>
import { onMounted, nextTick, ref } from "vue";
import { orderPaymentParamStore } from "stores/orderPaymentParamStore";
export default {
  name: "AlipayPage",
  setup() {
    const oStore = orderPaymentParamStore();

    const codeUrl = ref("");
    const orderId = ref("");
    const price = ref("");

    const htmlContent = ref("");

    const renderComponent = ref(true);

    function b64_to_utf8(str) {
      return window.atob(str);
    }

    const forceRerender = async () => {
      renderComponent.value = false;
      // Wait for the change to get flushed to the DOM
      await nextTick();

      // Add the component back in
      renderComponent.value = true;
    };

    onMounted(async () => {
      var allParamsFromPreviousPage = oStore.getPaymentDetail;
      console.log("what I got from book form:");
      console.log(allParamsFromPreviousPage);
      codeUrl.value = allParamsFromPreviousPage.codeUrl;
      console.log("decoded");
      htmlContent.value = b64_to_utf8(codeUrl.value);
      console.log(htmlContent.value);
      orderId.value = allParamsFromPreviousPage.orderId;
      price.value = allParamsFromPreviousPage.price;

      // forceRerender();
      var container = document.getElementById("container");
      container.innerHTML += htmlContent.value;
      // container.innerHTML += "<p>this is a test text</p>";

      // document.write(htmlContent.value);

      forceRerender();
    });

    return {
      renderComponent,
      htmlContent,
    };
  },
};
</script>