本文整理汇总了TypeScript中common/actions.actions.newItemsImported方法的典型用法代码示例。如果您正苦于以下问题:TypeScript actions.newItemsImported方法的具体用法?TypeScript actions.newItemsImported怎么用?TypeScript actions.newItemsImported使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common/actions.actions
的用法示例。
在下文中一共展示了actions.newItemsImported方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: async
watcher.on(actions.silentlyScanInstallLocations, async (store, action) => {
try {
logger.info(`Scanning install locations for items...`);
await mcall(
messages.InstallLocationsScan,
{
legacyMarketPath: legacyMarketPath(),
},
convo => {
hookLogging(convo, logger);
convo.on(messages.Progress, async ({ progress }) => {
store.dispatch(actions.locationScanProgress({ progress }));
});
convo.on(messages.InstallLocationsScanYield, async ({ game }) => {
logger.info(`Found ${game.title} - ${game.url}`);
});
convo.on(
messages.InstallLocationsScanConfirmImport,
async ({ numItems }) => {
logger.info(`In total, found ${numItems} items.`);
return { confirm: true };
}
);
}
);
logger.info(`Scan complete.`);
store.dispatch(actions.newItemsImported({}));
} finally {
store.dispatch(actions.locationScanDone({}));
}
});
示例2: async
watcher.on(actions.scanInstallLocations, async (store, action) => {
let names: string[] = [];
let widgetParams: IScanInstallLocationsParams = {
progress: 0.00001,
game: null,
};
const openModal = actions.openModal(
modalWidgets.scanInstallLocations.make({
window: "root",
title: ["preferences.scan_install_locations.title"],
message: "",
buttons: [
{
label: ["prompt.action.close"],
className: "secondary",
},
],
widgetParams,
unclosable: true,
})
);
store.dispatch(openModal);
const modalId = openModal.payload.id;
const update = () => {
store.dispatch(
actions.updateModalWidgetParams(
modalWidgets.scanInstallLocations.update({
id: modalId,
widgetParams,
})
)
);
};
try {
const importRes = await call(
messages.InstallLocationsScan,
{},
client => {
client.onNotification(messages.Progress, async ({ params }) => {
// TODO: relay ETA too?
widgetParams.progress = params.progress;
update();
});
client.onNotification(
messages.InstallLocationsScanYield,
async ({ params }) => {
names.push(params.game.title);
widgetParams.game = params.game;
update();
}
);
client.onRequest(
messages.InstallLocationsScanConfirmImport,
async ({ params }) => {
const res = await promisedModal(
store,
modalWidgets.naked.make({
window: "root",
title: ["preferences.scan_install_locations.confirm_import"],
message: ["preferences.scan_install_locations.message"],
detail: names.map(n => ` * ${n}`).join("\n") + "\n",
widgetParams: null,
buttons: [
{
label: [
"preferences.scan_install_locations.import_items",
{ numItems: params.numItems },
],
icon: "install",
action: actions.modalResponse({}),
},
"cancel",
],
})
);
return { confirm: !!res };
}
);
}
);
if (importRes.numFoundItems == 0) {
store.dispatch(
actions.statusMessage({
message: ["preferences.scan_install_locations.no_items_found"],
})
);
} else if (importRes.numImportedItems > 0) {
store.dispatch(actions.newItemsImported({}));
store.dispatch(
actions.statusMessage({
message: [
"preferences.scan_install_locations.items_imported",
{ numImportedItems: importRes.numImportedItems },
],
//.........这里部分代码省略.........