本文整理汇总了TypeScript中common/actions.actions.queueGame方法的典型用法代码示例。如果您正苦于以下问题:TypeScript actions.queueGame方法的具体用法?TypeScript actions.queueGame怎么用?TypeScript actions.queueGame使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common/actions.actions
的用法示例。
在下文中一共展示了actions.queueGame方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: async
watcher.on(actions.showGameUpdate, async (store, action) => {
const { update } = action.payload;
const { game } = update;
const { title } = game;
let dialogTitle = ["pick_update_upload.single.title", { title }];
let dialogMessage = ["pick_update_upload.single.message", { title }];
let dialogDetail = ["pick_update_upload.single.detail"];
const dialogButtons: ModalButtonSpec[] = [
{
icon: "moon",
label: ["pick_update_upload.buttons.skip_update"],
action: actions.snoozeCave({ caveId: update.caveId }),
className: "secondary",
},
{
icon: "play2",
label: ["pick_update_upload.buttons.just_launch"],
action: actions.queueGame({ game }),
className: "secondary",
},
"cancel",
];
store.dispatch(
actions.openModal(
modals.naked.make({
wind: "root",
title: dialogTitle,
message: dialogMessage,
detail: dialogDetail,
bigButtons: map(update.choices, choice => {
const spec: ModalButtonSpec = {
...makeUploadButton(choice.upload, { showSize: false }),
action: actions.queueGameUpdate({ update, choice }),
};
spec.tags.push({
icon: choice.confidence > 0.5 ? "like" : "neutral",
label: ` ${(choice.confidence * 100).toFixed()}%`,
});
return spec;
}),
buttons: dialogButtons,
widgetParams: null,
})
)
);
});
示例2: async
watcher.on(actions.commandMain, async (store, action) => {
const { window } = action.payload;
const { tab } = store.getState().windows[window].navigation;
const sp = Space.fromStore(store, window, tab);
if (sp.prefix === "games") {
const game = sp.game();
if (game) {
// FIXME: queueGame doesn't always do the right thing.
// it'll try installing even if there's no chance you'll be able
// to download it (for example, if you need to purchase it first)
store.dispatch(actions.queueGame({ game }));
}
}
});
示例3: async
watcher.on(actions.showGameUpdate, async (store, action) => {
const { update } = action.payload;
const { game, upload } = update;
const uploads = [upload];
const { title } = game;
let dialogTitle = ["pick_update_upload.single.title", { title }];
let dialogMessage = ["pick_update_upload.single.message", { title }];
let dialogDetail = ["pick_update_upload.single.detail"];
const dialogButtons: IModalButtonSpec[] = [
{
icon: "download",
label: ["pick_update_upload.buttons.update"],
action: actions.queueGameUpdate({ update }),
},
{
icon: "play2",
label: ["pick_update_upload.buttons.just_launch"],
action: actions.queueGame({ game }),
className: "secondary",
},
"cancel",
];
store.dispatch(
actions.openModal(
modalWidgets.naked.make({
window: "root",
title: dialogTitle,
message: dialogMessage,
detail: dialogDetail,
bigButtons: map(uploads, upload => {
const spec: IModalButtonSpec = {
...makeUploadButton(upload, { showSize: false }),
action: actions.queueGameUpdate({ update }),
};
return spec;
}),
buttons: dialogButtons,
widgetParams: null,
})
)
);
});
示例4: gameControls
export function gameControls(store: IStore, game: Game): IMenuTemplate {
let template: IMenuTemplate = [];
const status = getGameStatus(store.getState(), game);
const { cave, numCaves, operation } = status;
const mainAction = actionForGame(game, cave);
let statusItems: IMenuTemplate = [];
const itemForOperation = (operation: IOperation): IMenuItem => {
const localizedLabel = formatOperation(operation);
if (operation.name === "launch") {
return {
localizedLabel,
submenu: [
{
localizedLabel: ["prompt.action.force_close"],
action: actions.forceCloseGameRequest({ game }),
},
],
};
} else {
const item: IMenuItem = {
localizedLabel,
enabled: false,
};
if (operation.type === OperationType.Download && operation.id) {
item.submenu = [
{
localizedLabel: ["grid.item.discard_download"],
action: actions.discardDownload({ id: operation.id }),
},
];
}
return item;
}
};
if (cave) {
let busy = false;
if (operation) {
busy = true;
statusItems.push(itemForOperation(operation));
} else {
statusItems.push({
localizedLabel: [`grid.item.${mainAction}`],
action: actions.queueGame({ game }),
});
}
let updateAndLocalItems: IMenuTemplate = [];
if (!busy) {
updateAndLocalItems.push({
localizedLabel: ["grid.item.check_for_update"],
action: actions.checkForGameUpdate({ caveId: cave.id, noisy: true }),
});
}
updateAndLocalItems.push({
localizedLabel: showInExplorerString(),
action: actions.exploreCave({ caveId: cave.id }),
});
template = concatTemplates(template, updateAndLocalItems);
if (!busy) {
let uninstallReinstallItems: IMenuTemplate = [];
uninstallReinstallItems.push({
id: "context--grid-item-manage",
localizedLabel: ["grid.item.manage"],
action: actions.manageGame({ game }),
});
if (numCaves === 1) {
uninstallReinstallItems.push({
type: "separator",
});
uninstallReinstallItems.push({
id: "context--grid-item-uninstall",
localizedLabel: ["grid.item.uninstall"],
action: actions.requestCaveUninstall({ caveId: cave.id }),
});
}
template = concatTemplates(template, uninstallReinstallItems);
}
} else {
if (operation) {
statusItems.push(itemForOperation(operation));
} else {
if (status.access === Access.None) {
if (game.canBeBought) {
statusItems.push({
localizedLabel: ["grid.item.buy_now"],
action: actions.initiatePurchase({ game }),
});
//.........这里部分代码省略.........