fix: migrate pending orders #121

Merged
jsegarra merged 7 commits from ldragan/hedera-web:taro/pending-orders into beta 2025-03-27 05:15:04 +00:00
2 changed files with 22 additions and 14 deletions
Showing only changes of commit afbbbace4b - Show all commits

View File

@ -10,8 +10,8 @@ import { currency, formatDateTitle } from 'src/lib/filters.js';
import { useVnConfirm } from 'src/composables/useVnConfirm.js';
import useNotify from 'src/composables/useNotify.js';
import { useAppStore } from 'stores/app';
import { useUserStore } from 'stores/user';
import { storeToRefs } from 'pinia';
import { onUserId } from 'src/utils/onUserId';
const jApi = inject('jApi');
const api = inject('api');
@ -19,19 +19,16 @@ const { t } = useI18n();
const { openConfirmationModal } = useVnConfirm();
const { notify } = useNotify();
const appStore = useAppStore();
const userStore = useUserStore();
const { isHeaderMounted } = storeToRefs(appStore);
const router = useRouter();
const loading = ref(false);
const orders = ref([]);
const getOrders = async () => {
const getOrders = async (clientFk) => {
try {
loading.value = true;
const clientFk = userStore?.user?.id;
const filter = {
where: {
clientFk,
@ -99,15 +96,7 @@ const loadOrder = orderId => {
router.push({ name: 'catalog' });
};
watch(
() => userStore?.user?.id,
async userId => {
if (userId) {
getOrders();
}
},
{ immediate: true }
);
onUserId(getOrders);
</script>

Entiendo que este watch es para cuando hacemos suplantar no¿?

Entiendo que este watch es para cuando hacemos suplantar no¿?

Aquí me quedó pendiente poner el código de Lilium, que Willy compartió conmigo.

Aquí me quedó pendiente poner el código de Lilium, que Willy compartió conmigo.

@jsegarra probé el código del FetchData component, pero usar un componente Vue para algo que no tienen nada visual no me parece lo ideal. A nivel patrones, para ese tipo de cosas son los data stores, hooks, etc.

Sí es cierto que, cual dijiste, esto será necesario en varios componentes (no todos), así que lo refactoricé para que sea un simple onUserId del lado de los componentes. Esa función vive en su propio archivo, src/utils/onuserId.js. La estoy usando en este PR y https://gitea.verdnatura.es/verdnatura/hedera-web/pulls/124/files.

@jsegarra probé el código del FetchData component, pero usar un componente Vue para algo que no tienen nada visual no me parece lo ideal. A nivel patrones, para ese tipo de cosas son los data stores, hooks, etc. Sí es cierto que, cual dijiste, esto será necesario en varios componentes (no todos), así que lo refactoricé para que sea un simple `onUserId` del lado de los componentes. Esa función vive en su propio archivo, `src/utils/onuserId.js`. La estoy usando en este PR y https://gitea.verdnatura.es/verdnatura/hedera-web/pulls/124/files.

19
src/utils/onUserId.js Normal file
View File

@ -0,0 +1,19 @@
import { watch } from 'vue';
import { useUserStore } from 'stores/user';
const userStore = useUserStore();
export const onUserId = (cb) => watch(
() => userStore?.user?.id,
async userId => {
if (userId) {

Usando clausulas de guarda podemos quitar un nivel de indexación
if (!userId) return;

Usando clausulas de guarda podemos quitar un nivel de indexación ` if (!userId) return;`
try {
await cb(userId);
} catch (error) {
console.error(error);
}
}
},
{ immediate: true }
);