import { CssProps, RefProps } from 'lupine.web'; import { ActionSheetSelectPromise, HeaderWithBackFrame, HtmlVar, NotificationColor, NotificationMessage, SliderFrame, SliderFrameHookProps, } from '../../index'; export const Nested2DemoMock = (props: { sliderFrameHook: SliderFrameHookProps }) => { const css: CssProps = { display: 'flex', flexDirection: 'column', flex: '1', padding: '0 16px', alignItems: 'center', justifyContent: 'center', height: '100%', textAlign: 'center', color: 'var(--secondary-text-color)', fontSize: '16px', }; return ( { props.sliderFrameHook.close!(event); }} >
This is a generic sub-page demo.

(Further nesting is disabled in this mockup)
); }; const NestedDemoMockContent = () => { const sliderFrameHook: SliderFrameHookProps = {}; const css: CssProps = { display: 'flex', flexDirection: 'column', flex: '1', padding: '0 16px', '.fb-detail': { height: '100px', }, '.input-field': { position: 'relative', marginTop: '16px', marginBottom: '16px', }, '.input-base': { width: '100%', padding: '12px', border: '1px solid var(--primary-border-color)', borderRadius: '8px', boxSizing: 'border-box', }, '.setting-section-row-btn': { display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '12px 16px', backgroundColor: 'var(--primary-color)', color: 'white', borderRadius: '8px', marginTop: '16px', cursor: 'pointer', fontSize: '16px', gap: '8px', }, '.setting-section-row-btn i': { fontSize: '20px', }, }; const ref: RefProps = {}; const openAnotherLevel = () => { sliderFrameHook.load!(); }; const submitFeedback = async (e: Event) => { const titleDom = ref.$('.fb-title') as HTMLInputElement; const detailDom = ref.$('.fb-detail') as HTMLTextAreaElement; if (!titleDom || !titleDom.value || !detailDom || !detailDom.value) { NotificationMessage.sendMessage('Please enter the required information.', NotificationColor.Error); return; } const index = await ActionSheetSelectPromise({ title: 'Are you sure you want to submit?', options: ['Confirm'], cancelButtonText: 'Cancel', }); if (index !== 0) { return; } NotificationMessage.sendMessage('Thank you for your feedback.', NotificationColor.Success); sliderFrameHook.close!(e); }; return (
Nested Demo
This is a generic generic demo page. You can nest another level of itself by clicking the button below.
Open Nested Demo
Submit Form
); }; export const NestedDemoMock = (props: { sliderFrameHook: SliderFrameHookProps }) => { return ( { if (props.sliderFrameHook.close) props.sliderFrameHook.close(event); }} > ); }; const UserSettingsMockContent = () => { const sliderFrameHook: SliderFrameHookProps = {}; const renderContent = () => { const css: CssProps = { display: 'flex', flexDirection: 'column', flex: '1', padding: '0 16px', backgroundColor: 'var(--secondary-bg-color, #f5f5f5)', // Minimal settings UI styles ported from what was expected in original UI '.setting-section-group': { marginTop: '16px', }, '.setting-section-title': { padding: '0 16px 8px 16px', fontSize: '13px', color: 'var(--secondary-text-color, #666)', }, '.setting-section-block': { backgroundColor: 'var(--primary-bg-color, white)', borderRadius: '12px', overflow: 'hidden', }, '.setting-section-item': { display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '16px', borderBottom: '1px solid var(--primary-border-color, #eee)', cursor: 'pointer', }, '.setting-section-item:last-child': { borderBottom: 'none', }, '.setting-section-item-text': { fontSize: '15px', color: 'var(--primary-text-color)', }, '.setting-section-item-icon': { color: 'var(--secondary-text-color, #ccc)', display: 'flex', }, '.setting-section-item-icon i': { fontSize: '20px', }, '.setting-section-row-btn': { backgroundColor: 'var(--primary-bg-color, white)', borderRadius: '12px', padding: '16px', display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '8px', color: '#ff3b30', fontSize: '15px', cursor: 'pointer', fontWeight: 'bold', }, '.setting-section-row-btn i': { fontSize: '20px', }, }; const openNestedDemo = () => { sliderFrameHook.load!(); }; return ( ); }; const dom = new HtmlVar(renderContent()); return
{dom.node}
; }; export const UserSettingsMock = (props: { sliderFrameHook: SliderFrameHookProps }) => { return ( { props.sliderFrameHook.close!(event); }} > ); };