Skip to content

Commit 9d1f718

Browse files
committed
Rework phenome plugin
1 parent 0e47aaa commit 9d1f718

8 files changed

Lines changed: 59 additions & 56 deletions

File tree

src/phenome/components/app.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Utils from '../utils/utils';
22
import Mixins from '../utils/mixins';
3-
import f7Plugin from '../utils/plugin';
3+
import f7 from '../utils/f7';
44
import RoutableModals from './routable-modals';
55

66
export default {
@@ -48,6 +48,6 @@ export default {
4848
parentEl.style.height = '100%';
4949
}
5050

51-
f7Plugin.init(el, params, routes);
51+
f7.init(el, params, routes);
5252
},
5353
};

src/phenome/components/routable-modals.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint array-callback-return: "off" */
22
/* eslint consistent-return: "off" */
3-
import routers from '../utils/routers';
3+
import f7 from '../utils/f7';
44
import events from '../utils/events';
55

66
export default {
@@ -37,7 +37,7 @@ export default {
3737
componentWillUnmount() {
3838
const self = this;
3939
if (!self.routerData) return;
40-
routers.modals = null;
40+
f7.routers.modals = null;
4141
self.routerData = null;
4242
delete self.routerData;
4343
},
@@ -49,6 +49,6 @@ export default {
4949
el,
5050
component: self,
5151
};
52-
routers.modals = self.routerData;
52+
f7.routers.modals = self.routerData;
5353
},
5454
};

src/phenome/components/tab.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint array-callback-return: "off" */
22
/* eslint consistent-return: "off" */
33
import events from '../utils/events';
4-
import routers from '../utils/routers';
4+
import f7 from '../utils/f7';
55
import Utils from '../utils/utils';
66
import Mixins from '../utils/mixins';
77

@@ -74,7 +74,7 @@ export default {
7474
el.removeEventListener('tab:hide', self.onTabHideBound);
7575
}
7676
if (!self.routerData) return;
77-
routers.tabs.splice(routers.tabs.indexOf(self.routerData), 1);
77+
f7.routers.tabs.splice(f7.routers.tabs.indexOf(self.routerData), 1);
7878
self.routerData = null;
7979
delete self.routerData;
8080
},
@@ -93,7 +93,7 @@ export default {
9393
el,
9494
component: self,
9595
};
96-
routers.tabs.push(self.routerData);
96+
f7.routers.tabs.push(self.routerData);
9797
});
9898
},
9999
methods: {

src/phenome/components/view.jsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint array-callback-return: "off" */
22
/* eslint consistent-return: "off" */
3-
import routers from '../utils/routers';
3+
import f7 from '../utils/f7';
44
import events from '../utils/events';
55
import Utils from '../utils/utils';
66
import Mixins from '../utils/mixins';
@@ -138,18 +138,18 @@ export default {
138138

139139
self.setState({ pages: [] });
140140

141-
self.$f7ready((f7) => {
141+
self.$f7ready((f7Instance) => {
142142
if (!self.props.init) return;
143143
self.routerData = {
144144
el,
145145
component: self,
146146
instance: null,
147147
};
148-
routers.views.push(self.routerData);
148+
f7.routers.views.push(self.routerData);
149149
// phenome-vue-next-line
150-
self.routerData.instance = f7.views.create(el, Utils.noUndefinedProps(self.$options.propsData || {}));
150+
self.routerData.instance = f7Instance.views.create(el, Utils.noUndefinedProps(self.$options.propsData || {}));
151151
// phenome-react-next-line
152-
self.routerData.instance = f7.views.create(el, Utils.noUndefinedProps(self.props));
152+
self.routerData.instance = f7Instance.views.create(el, Utils.noUndefinedProps(self.props));
153153
self.f7View = self.routerData.instance;
154154
});
155155
},
@@ -167,7 +167,7 @@ export default {
167167

168168
if (!self.props.init) return;
169169
if (self.f7View && self.f7View.destroy) self.f7View.destroy();
170-
routers.views.splice(routers.views.indexOf(self.routerData), 1);
170+
f7.routers.views.splice(f7.routers.views.indexOf(self.routerData), 1);
171171
self.routerData = null;
172172
delete self.routerData;
173173
},

src/phenome/utils/components-router.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint no-underscore-dangle: "off" */
2-
import routers from './routers';
2+
import f7 from './f7';
33
import events from './events';
44
import Utils from './utils';
55

@@ -11,7 +11,7 @@ export default {
1111
const router = this;
1212
const el = routerEl;
1313
let routerComponent;
14-
routers.views.forEach((data) => {
14+
f7.routers.views.forEach((data) => {
1515
if (data.el && data.el === routerEl) {
1616
routerComponent = data.component;
1717
}
@@ -52,7 +52,7 @@ export default {
5252
if (!$pageEl) return;
5353
const router = this;
5454
let routerComponent;
55-
routers.views.forEach((data) => {
55+
f7.routers.views.forEach((data) => {
5656
if (data.el && data.el === router.el) {
5757
routerComponent = data.component;
5858
}
@@ -85,7 +85,7 @@ export default {
8585
if (!tabEl) reject();
8686

8787
let tabsComponent;
88-
routers.tabs.forEach((tabData) => {
88+
f7.routers.tabs.forEach((tabData) => {
8989
if (tabData.el && tabData.el === tabEl) {
9090
tabsComponent = tabData.component;
9191
}
@@ -124,7 +124,7 @@ export default {
124124
if (!tabEl) return;
125125

126126
let tabComponent;
127-
routers.tabs.forEach((tabData) => {
127+
f7.routers.tabs.forEach((tabData) => {
128128
if (tabData.el && tabData.el === tabEl) {
129129
tabComponent = tabData.component;
130130
}
@@ -138,8 +138,8 @@ export default {
138138
},
139139
modalComponentLoader(rootEl, component, componentUrl, options, resolve, reject) {
140140
const router = this;
141-
const modalsComponent = routers.modals && routers.modals.component;
142-
const modalsComponentEl = routers.modals && routers.modals.el;
141+
const modalsComponent = f7.routers.modals && f7.routers.modals.component;
142+
const modalsComponentEl = f7.routers.modals && f7.routers.modals.el;
143143

144144
if (!modalsComponent || !modalsComponent.state.modals) {
145145
reject();
@@ -173,7 +173,7 @@ export default {
173173
modalsComponent.setState({ modals: modalsComponent.state.modals });
174174
},
175175
removeModal(modalEl) {
176-
const modalsComponent = routers.modals && routers.modals.component;
176+
const modalsComponent = f7.routers.modals && f7.routers.modals.component;
177177
if (!modalsComponent) return;
178178

179179
let modalDataToRemove;

src/phenome/utils/f7.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import Utils from './utils';
2+
import events from './events';
3+
4+
const f7 = {
5+
instance: null,
6+
Framework7: null,
7+
init(rootEl, params = {}, routes) {
8+
const f7Params = Utils.extend({}, params, {
9+
root: rootEl,
10+
});
11+
if (routes && routes.length && !f7Params.routes) f7Params.routes = routes;
12+
13+
f7.instance = new f7.Framework7(f7Params);
14+
events.emit('ready', f7.instance);
15+
},
16+
ready(callback) {
17+
if (!callback) return;
18+
if (f7.instance) callback(f7.instance);
19+
else {
20+
events.once('ready', callback);
21+
}
22+
},
23+
routers: {
24+
views: [],
25+
tabs: [],
26+
modals: null,
27+
},
28+
};
29+
30+
export default f7;

src/phenome/utils/plugin.js

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,14 @@
11
// IMPORT_LIBRARY
22
// IMPORT_COMPONENTS
33
/* eslint no-underscore-dangle: "off" */
4-
import Utils from './utils';
54
import componentsRouter from './components-router';
6-
import routers from './routers';
7-
import events from './events';
5+
import f7 from './f7';
86

97
const Plugin = {
108
name: 'phenomePlugin',
11-
Framework7: null,
12-
instance: null,
13-
events,
14-
routers,
15-
init(rootEl, params = {}, routes) {
16-
const f7Params = Utils.extend({}, params, {
17-
root: rootEl,
18-
});
19-
if (routes && routes.length && !f7Params.routes) f7Params.routes = routes;
20-
21-
Plugin.instance = new Plugin.Framework7(f7Params);
22-
Plugin.events.emit('ready', Plugin.instance);
23-
},
24-
install(params) {
9+
install(params = {}) {
2510
const Framework7 = this;
26-
Plugin.Framework7 = Framework7;
11+
f7.Framework7 = Framework7;
2712

2813
const Extend = EXTEND; // eslint-disable-line
2914
const compiler = COMPILER; // eslint-disable-line
@@ -34,7 +19,7 @@ const Plugin = {
3419
// Define protos
3520
Object.defineProperty(Extend.prototype, '$f7', {
3621
get() {
37-
return Plugin.instance;
22+
return f7.instance;
3823
},
3924
});
4025

@@ -49,14 +34,14 @@ const Plugin = {
4934
Object.defineProperty(Extend.prototype, '$theme', {
5035
get() {
5136
return {
52-
ios: Plugin.instance ? Plugin.instance.theme === 'ios' : $theme.ios,
53-
md: Plugin.instance ? Plugin.instance.theme === 'md' : $theme.md,
37+
ios: f7.instance ? f7.instance.theme === 'ios' : $theme.ios,
38+
md: f7.instance ? f7.instance.theme === 'md' : $theme.md,
5439
};
5540
},
5641
});
5742

5843
function f7ready(callback) {
59-
Plugin.ready(callback);
44+
f7.ready(callback);
6045
}
6146
Extend.prototype.Dom7 = Framework7.$;
6247
Extend.prototype.$$ = Framework7.$;
@@ -117,13 +102,6 @@ const Plugin = {
117102
// Extend F7 Router
118103
Framework7.Router.use(componentsRouter);
119104
},
120-
ready(callback) {
121-
if (!callback) return;
122-
if (Plugin.instance) callback(Plugin.instance);
123-
else {
124-
events.once('ready', callback);
125-
}
126-
},
127105
};
128106

129107
export default Plugin;

src/phenome/utils/routers.js

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)