blob: 79a41f668dec7b14d8538bcddf8c635e898c57e0 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview Module for functions which produce action objects. These are
* listed in one place to document available actions and their parameters.
*/
cr.define('app_management.actions', function() {
/**
* @param {App} app
*/
function addApp(app) {
return {
name: 'add-app',
app: app,
};
}
/**
* @param {App} update
*/
function changeApp(update) {
return {
name: 'change-app',
update: update,
};
}
/**
* @param {string} id
*/
function removeApp(id) {
return {
name: 'remove-app',
id: id,
};
}
/**
* @param {PageType} pageType
* @param {string=} id
*/
function changePage(pageType, id) {
if (pageType === PageType.DETAIL && !id) {
console.warn(
'Tried to load app detail page without providing an app id.');
}
if (PageType == PageType.SEARCH) {
console.warn('This should not be invoked');
}
return {
name: 'change-page',
pageType: pageType,
id: id,
};
}
/** @return {!cr.ui.Action} */
function clearSearch() {
return {
name: 'clear-search',
};
}
/**
* @param {string} term
* @return {!cr.ui.Action}
*/
function setSearchTerm(term) {
if (!term) {
return clearSearch();
}
return {
name: 'start-search',
term: term,
};
}
return {
addApp: addApp,
changeApp: changeApp,
removeApp: removeApp,
changePage: changePage,
clearSearch: clearSearch,
setSearchTerm: setSearchTerm,
};
});