nodebb-plugin-ns-embed
Version:
Embed media and rich content in posts: youtube, vimeo, twitch etc. All embeds are based on the rules. You are encouraged to build your own rules to embed everything what is embeddable.
36 lines (30 loc) • 1.53 kB
JavaScript
import React from 'react';
import ReactDom from 'react-dom';
import { setNewRule } from './controller/actions';
import { Admin } from './view/admin';
import { changeNewRuleField } from './controller/change-new-rule-field';
import { changeRuleField } from './controller/change-rule-field';
import { getNewRule } from './model/selectors';
import { SocketService } from './service/socket-service';
import { createInitialState, createStore, createStoreProvider } from './model/store';
export const init = async () => {
console.info('Initiate ACP: Embed');
let alerts = await window.app.require('alerts');
let store = createStore(createInitialState());
let Provider = createStoreProvider(store);
let socketService = new SocketService(store, alerts);
ReactDom.render(
<Provider>
<Admin
fieldWillChange={(rule, field, value) => changeRuleField(rule, field, value, store)}
installDefaultRules={() => socketService.installDefaultRules()}
newRuleFieldWillChange={(field, value) => changeNewRuleField(field, value, store)}
ruleWillCreate={() => socketService.createNewRule(getNewRule(store.getState()))}
ruleWillDelete={rule => socketService.deleteRule(rule)}
ruleWillReset={() => store.dispatch(setNewRule({}))}
ruleWillSave={rule => socketService.saveRule(rule)} />
</Provider>,
document.getElementById('acpEmbedContainer')
);
socketService.getAllRules();
};