parent
c99eb3a7fa
commit
b17827c8ee
@ -0,0 +1,44 @@ |
|||||||
|
import { Plugin } from '@remixproject/engine' |
||||||
|
import { LibraryProfile, MethodApi, StatusEvents } from '@remixproject/plugin-utils' |
||||||
|
import { AppModal } from '@remix-ui/app' |
||||||
|
import { AlertModal } from 'libs/remix-ui/app/src/lib/remix-app/interface' |
||||||
|
import { dispatchModalInterface } from 'libs/remix-ui/app/src/lib/remix-app/context/context' |
||||||
|
|
||||||
|
interface IModalApi { |
||||||
|
events: StatusEvents, |
||||||
|
methods: { |
||||||
|
modal: (args: AppModal) => void |
||||||
|
alert: (args: AlertModal) => void |
||||||
|
toast: (message: string) => void |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
const profile:LibraryProfile<IModalApi> = { |
||||||
|
name: 'modal', |
||||||
|
displayName: 'Modal', |
||||||
|
description: 'Modal', |
||||||
|
methods: ['modal', 'alert', 'toast'] |
||||||
|
} |
||||||
|
|
||||||
|
export class ModalPlugin extends Plugin implements MethodApi<IModalApi> { |
||||||
|
dispatcher: dispatchModalInterface |
||||||
|
constructor () { |
||||||
|
super(profile) |
||||||
|
} |
||||||
|
|
||||||
|
setDispatcher (dispatcher: dispatchModalInterface) { |
||||||
|
this.dispatcher = dispatcher |
||||||
|
} |
||||||
|
|
||||||
|
async modal (args: AppModal) { |
||||||
|
this.dispatcher.modal(args) |
||||||
|
} |
||||||
|
|
||||||
|
async alert (args: AlertModal) { |
||||||
|
this.dispatcher.alert(args) |
||||||
|
} |
||||||
|
|
||||||
|
async toast (message: string) { |
||||||
|
this.dispatcher.toast(message) |
||||||
|
} |
||||||
|
} |
@ -1 +1,4 @@ |
|||||||
export { default as RemixApp } from './lib/remix-app/remix-app' |
export { default as RemixApp } from './lib/remix-app/remix-app' |
||||||
|
export { dispatchModalContext } from './lib/remix-app/context/context' |
||||||
|
export { ModalProvider } from './lib/remix-app/context/provider' |
||||||
|
export { AppModal } from './lib/remix-app/interface/index' |
||||||
|
@ -0,0 +1,16 @@ |
|||||||
|
import React, { useContext, useEffect } from 'react' |
||||||
|
import { AppContext } from '../../context/context' |
||||||
|
import { useDialogDispatchers } from '../../context/provider' |
||||||
|
|
||||||
|
const DialogViewPlugin = () => { |
||||||
|
const { modal, alert, toast } = useDialogDispatchers() |
||||||
|
const app = useContext(AppContext) |
||||||
|
|
||||||
|
useEffect(() => { |
||||||
|
console.log(modal, app) |
||||||
|
app.modal.setDispatcher({ modal, alert, toast }) |
||||||
|
}, []) |
||||||
|
return <></> |
||||||
|
} |
||||||
|
|
||||||
|
export default DialogViewPlugin |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue