mirror of
https://github.com/tabler/tabler.git
synced 2026-08-29 13:21:29 +04:00
Restructure shared Astro sources and import aliases (#2737)
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
---
|
||||
// registers the modal in page-modals, and BaseLayout emits it at the end of <body>
|
||||
// (like {% modals %}).
|
||||
// NOTE: registration must be synchronous (a promise, not an awaited string) —
|
||||
// see the comment in src/lib/page-modals.ts.
|
||||
import { addPageModal } from '@shared/lib/page-modals';
|
||||
|
||||
interface Props {
|
||||
modalId?: string;
|
||||
size?: string;
|
||||
top?: boolean;
|
||||
scrollable?: boolean;
|
||||
class?: string;
|
||||
show?: boolean;
|
||||
style?: string;
|
||||
}
|
||||
|
||||
const {
|
||||
modalId = 'simple',
|
||||
size,
|
||||
top,
|
||||
scrollable,
|
||||
class: className,
|
||||
show,
|
||||
style,
|
||||
} = Astro.props;
|
||||
|
||||
const modalClass = ['modal modal-blur fade', className, show && 'show'].filter(Boolean).join(' ');
|
||||
const dialogClass = [
|
||||
'modal-dialog',
|
||||
size && `modal-${size}`,
|
||||
!top && 'modal-dialog-centered',
|
||||
scrollable && 'modal-dialog-scrollable',
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(' ');
|
||||
|
||||
addPageModal(
|
||||
Astro.slots.render('default').then(
|
||||
(content) =>
|
||||
`<div class="${modalClass}"${style ? ` style="${style}"` : ''} id="modal-${modalId}" tabindex="-1" role="dialog" aria-hidden="${show ? 'false' : 'true'}">
|
||||
<div class="${dialogClass}" role="document">
|
||||
<div class="modal-content">
|
||||
${content}
|
||||
</div>
|
||||
</div>
|
||||
</div>`,
|
||||
),
|
||||
);
|
||||
---
|
||||
Reference in New Issue
Block a user