feat(shared): Add kiosk mode to tabbed examples
This commit is contained in:
parent
f9de3f6990
commit
3ed61f56e1
2 changed files with 44 additions and 14 deletions
|
@ -141,7 +141,9 @@ export const TabbedExample = ({
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="my-8">
|
<div className="my-8">
|
||||||
<Tabs tabs={tabNames.join(', ')}>{tabs}</Tabs>
|
<Tabs tabs={tabNames.join(', ')} withModal>
|
||||||
|
{tabs}
|
||||||
|
</Tabs>
|
||||||
{caption && (
|
{caption && (
|
||||||
<div className="text-center italic -mt-4">
|
<div className="text-center italic -mt-4">
|
||||||
<Md>{caption}</Md>
|
<Md>{caption}</Md>
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
import React, { useState } from 'react'
|
import React, { useState, useContext } from 'react'
|
||||||
|
import { ModalContext } from 'shared/context/modal-context.mjs'
|
||||||
|
import { ModalWrapper } from 'shared/components/wrappers/modal.mjs'
|
||||||
|
import { KioskIcon } from 'shared/components/icons.mjs'
|
||||||
|
|
||||||
|
export const Tabs = ({ tabs = '', active = 0, children, withModal = false }) => {
|
||||||
|
const { setModal } = useContext(ModalContext)
|
||||||
|
|
||||||
export const Tabs = ({ tabs = '', active = 0, children }) => {
|
|
||||||
// Keep active tab in state
|
// Keep active tab in state
|
||||||
const [activeTab, setActiveTab] = useState(active)
|
const [activeTab, setActiveTab] = useState(active)
|
||||||
|
|
||||||
|
@ -20,17 +25,40 @@ export const Tabs = ({ tabs = '', active = 0, children }) => {
|
||||||
return (
|
return (
|
||||||
<div className="my-4">
|
<div className="my-4">
|
||||||
<div className="tabs">
|
<div className="tabs">
|
||||||
{tablist.map((title, tabId) => (
|
{tablist.map((title, tabId) => {
|
||||||
<button
|
const btnClasses = `text-lg font-bold capitalize tab h-auto tab-bordered grow py-2 ${
|
||||||
key={tabId}
|
|
||||||
className={`text-lg font-bold capitalize tab h-auto tab-bordered grow py-2 ${
|
|
||||||
activeTab === tabId ? 'tab-active' : ''
|
activeTab === tabId ? 'tab-active' : ''
|
||||||
}`}
|
}`
|
||||||
onClick={() => setActiveTab(tabId)}
|
|
||||||
>
|
return withModal && activeTab === tabId ? (
|
||||||
|
<div className={`flex flex-row justify-between w-1/${tablist.length}`}>
|
||||||
|
<button key={tabId} className={btnClasses} onClick={() => setActiveTab(tabId)}>
|
||||||
{title}
|
{title}
|
||||||
</button>
|
</button>
|
||||||
))}
|
<button
|
||||||
|
className={`${btnClasses} px-0`}
|
||||||
|
onClick={() =>
|
||||||
|
setModal(
|
||||||
|
<ModalWrapper
|
||||||
|
flex="col"
|
||||||
|
justify="top lg:justify-center"
|
||||||
|
slideFrom="right"
|
||||||
|
fullWidth
|
||||||
|
>
|
||||||
|
{childrenWithTabSetter}
|
||||||
|
</ModalWrapper>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<KioskIcon className="w-6 h-6 hover:text-secondary" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<button key={tabId} className={btnClasses} onClick={() => setActiveTab(tabId)}>
|
||||||
|
{title}
|
||||||
|
</button>
|
||||||
|
)
|
||||||
|
})}
|
||||||
</div>
|
</div>
|
||||||
<div>{childrenWithTabSetter}</div>
|
<div>{childrenWithTabSetter}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue