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 { 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