top of page

import wixData from 'wix-data';import { currentMember } from 'wix-members-frontend';import { orders } from 'wix-pricing-plans-frontend';async function all(query) { let page = await query.limit(1000).find(); const items = [...page.items]; while (page.hasNext()) { page = await page.next(); items.push(...page.items); } return items;}function compactOrders(memberOrders = []) { return memberOrders.map((order) => ({ id: order._id || order.id || '', status: order.status || order.orderStatus || '', planId: order.planId || order.plan?._id || order.plan?.id || '', planName: order.planName || order.plan?.name || order.name || '' }));}$w.onReady(function () { const panel = $w('#html1'); let busy = false; panel.onMessage(async (event) => { if (event.data?.type === 'resize') { const height = Math.max( 500, Math.min(Number(event.data.height) || 500, 10000) ); panel.height = height; return; } if ( !['ready', 'getHistory'].includes(event.data?.type) || busy ) { return; } busy = true; try { const member = await currentMember.getMember(); if (!member?._id) { panel.postMessage({ type: 'signInRequired' }); return; } const ordersPromise = orders .listCurrentMemberOrders() .catch((error) => { console.warn('Pricing-plan access could not be checked', error); return []; }); const [sessions, entries, templates, memberOrders] = await Promise.all([ all( wixData .query('WorkoutSessions') .eq('_owner', member._id) .descending('workoutDate') ), all( wixData .query('WorkoutSetEntries') .eq('_owner', member._id) .ascending('exerciseOrder', 'setNumber') ), all( wixData .query('WorkoutSessionTemplates') .eq('active', true) ), ordersPromise ]); const grouped = new Map(); entries.forEach((entry) => { const id = typeof entry.workoutSession === 'object' ? entry.workoutSession?._id : entry.workoutSession; if (!grouped.has(id)) { grouped.set(id, []); } grouped.get(id).push(entry); }); panel.postMessage({ type: 'historyData', payload: sessions .filter((session) => session.status !== 'SAVING') .map((session) => ({ ...session, id: session._id, entries: grouped.get(session._id) || [] })), templates, orders: compactOrders(memberOrders) }); } catch (error) { console.error('Progress loading failed', error); panel.postMessage({ type: 'historyError', payload: { message: 'Unable to load your progress. Please sign in and try again.' } }); } finally { busy = false; } });});

bottom of page
position: sticky !important; top: 0 !important; z-index: 1000 !important; transition: transform 220ms ease !important; will-change: transform; } #SITE_HEADER.wtw-header-hidden { transform: translateY(-100%) !important; } #SITE_HEADER.wtw-header-visible { transform: translateY(0) !important; } } @media (max-width: 767px) and (prefers-reduced-motion: reduce) { #SITE_HEADER { transition: none !important; } }