This commit is contained in:
syuilo 2018-05-27 18:12:39 +09:00
parent e477de6dd0
commit fa1a85f682
6 changed files with 45 additions and 52 deletions

View file

@ -1,16 +1,15 @@
import OS from '../../mios';
import Ctx from '../views/components/context-menu.vue';
export default function(e, menu, opts?) {
export default (os: OS) => (e, menu, opts?) => {
const o = opts || {};
const vm = new Ctx({
propsData: {
const vm = os.new(Ctx, {
menu,
x: e.pageX - window.pageXOffset,
y: e.pageY - window.pageYOffset,
}
}).$mount();
});
vm.$once('closed', () => {
if (o.closed) o.closed();
});
document.body.appendChild(vm.$el);
}
};

View file

@ -1,16 +1,15 @@
import OS from '../../mios';
import Dialog from '../views/components/dialog.vue';
export default function(opts) {
export default (os: OS) => opts => {
return new Promise<string>((res, rej) => {
const o = opts || {};
const d = new Dialog({
propsData: {
const d = os.new(Dialog, {
title: o.title,
text: o.text,
modal: o.modal,
buttons: o.actions
}
}).$mount();
});
d.$once('clicked', id => {
res(id);
});

View file

@ -1,20 +1,19 @@
import OS from '../../mios';
import InputDialog from '../views/components/input-dialog.vue';
export default function(opts) {
export default (os: OS) => opts => {
return new Promise<string>((res, rej) => {
const o = opts || {};
const d = new InputDialog({
propsData: {
const d = os.new(InputDialog, {
title: o.title,
placeholder: o.placeholder,
default: o.default,
type: o.type || 'text',
allowEmpty: o.allowEmpty
}
}).$mount();
});
d.$once('done', text => {
res(text);
});
document.body.appendChild(d.$el);
});
}
};

View file

@ -1,10 +1,9 @@
import OS from '../../mios';
import Notification from '../views/components/ui-notification.vue';
export default function(message) {
const vm = new Notification({
propsData: {
export default (os: OS) => message => {
const vm = os.new(Notification, {
message
}
}).$mount();
});
document.body.appendChild(vm.$el);
}
};

View file

@ -1,21 +1,18 @@
import OS from '../../mios';
import PostFormWindow from '../views/components/post-form-window.vue';
import RenoteFormWindow from '../views/components/renote-form-window.vue';
export default function(opts) {
export default (os: OS) => opts => {
const o = opts || {};
if (o.renote) {
const vm = new RenoteFormWindow({
propsData: {
const vm = os.new(RenoteFormWindow, {
renote: o.renote
}
}).$mount();
});
document.body.appendChild(vm.$el);
} else {
const vm = new PostFormWindow({
propsData: {
const vm = os.new(PostFormWindow, {
reply: o.reply
}
}).$mount();
});
document.body.appendChild(vm.$el);
}
}
};

View file

@ -69,10 +69,10 @@ init(async (launch) => {
const [, os] = launch(router, os => ({
chooseDriveFolder: chooseDriveFolder(os),
chooseDriveFile: chooseDriveFile(os),
dialog,
input,
post,
notify,
dialog: dialog(os),
input: input(os),
post: post(os),
notify: notify(os),
updateAvatar: updateAvatar(os),
updateBanner: updateBanner(os)
}));