Skip to content

Instantly share code, notes, and snippets.

@tedshd
Created September 14, 2023 02:47
Show Gist options
  • Save tedshd/aad9f918b3506f02f7b0bd3a84a61e4e to your computer and use it in GitHub Desktop.
Save tedshd/aad9f918b3506f02f7b0bd3a84a61e4e to your computer and use it in GitHub Desktop.
function parmas
import { showModalOrigin, showModal } from './function'
showModalOrigin({
dom: 'dom',
options: {
clickCloseOrigin: (e, tools) => {
console.log(e)
console.log('click close origin')
tools?.hideModalOrigin()
}
}
})
// 寫法會比較接近把功能都簡單的參數化
showModal({
dom: 'dom',
options: {
closeModalCallback: (e) => {
console.log(e)
console.log('close modal callback')
},
clickClose: true
}
})
type CallBackType = (
event: any,
tools?: {
hideModalOrigin: () => void
}
) => void;
interface modalParamsOrigin {
dom: any
options: {
clickCloseOrigin: CallBackType
}
}
interface modalParams {
dom: any
options: {
closeModalCallback: (event) => void
clickClose: boolean
}
}
const hideModalOrigin = () => {
console.log('hide modal origin')
// dom.classList.add('hide')
}
export const showModalOrigin = (params: modalParamsOrigin) => {
const { dom, options } = params
const { clickCloseOrigin } = options
// if (clickCloseOrigin) {
// dom?.addEventListener('click', (event) => {
// clickCloseOrigin(event, {
// hideModalOrigin
// })
// })
// }
if (clickCloseOrigin) {
clickCloseOrigin('event', {
hideModalOrigin
})
}
}
const hideModal = (dom: any) => {
console.log('hide modal')
// dom.classList.add('hide')
}
export const showModal = (params: modalParams) => {
const { dom, options } = params
const { closeModalCallback, clickClose } = options
// if (closeModalCallback) {
// dom?.addEventListener('click', (e) => {
// closeModalCallback(e)
// if (clickClose) {
// hideModal(dom)
// }
// }
// }
if (closeModalCallback) {
closeModalCallback('e')
if (clickClose) {
hideModal(dom)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment