diff --git a/CHANGELOG.md b/CHANGELOG.md index 74f58e8a..903c8aff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +#1.3.74 +- Moved the previous query string params to Onyx + #1.3.73 - Added query string params to determine initial checked state for "on hold", "under review", and "owned by someone else" checkboxes diff --git a/assets/manifest-firefox.json b/assets/manifest-firefox.json index f558ed54..e008db29 100644 --- a/assets/manifest-firefox.json +++ b/assets/manifest-firefox.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "K2 for GitHub", - "version": "1.3.73", + "version": "1.3.74", "description": "Manage your Kernel Scheduling from directly inside GitHub", "browser_specific_settings": { diff --git a/assets/manifest.json b/assets/manifest.json index 83d77409..81329de3 100644 --- a/assets/manifest.json +++ b/assets/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "K2 for GitHub", - "version": "1.3.73", + "version": "1.3.74", "description": "Manage your Kernel Scheduling from directly inside GitHub", "icons": { diff --git a/package-lock.json b/package-lock.json index 81db2aa4..8561b9ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "k2-extension", - "version": "1.3.73", + "version": "1.3.74", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package.json b/package.json index 74cec21d..7f275fad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "k2-extension", - "version": "1.3.73", + "version": "1.3.74", "description": "A Chrome Extension for Kernel Schedule", "private": true, "scripts": { diff --git a/src/js/ONYXKEYS.js b/src/js/ONYXKEYS.js index 10e80286..bb9687cd 100644 --- a/src/js/ONYXKEYS.js +++ b/src/js/ONYXKEYS.js @@ -15,6 +15,7 @@ export default { DAILY_IMPROVEMENTS: 'issueDailyImprovements', ENGINEERING: 'issueEngineering', FILTER: 'issueFilter', + CHECKBOXES: 'issueCheckboxes', HOTPICKS: 'issueHotPicks', }, diff --git a/src/js/lib/actions/Issues.js b/src/js/lib/actions/Issues.js index 0f86420d..5e027744 100644 --- a/src/js/lib/actions/Issues.js +++ b/src/js/lib/actions/Issues.js @@ -137,6 +137,16 @@ function getEngineering() { )); } +/** + * @param {Object} checkboxes + * @param {String} [checkboxes.shouldHideOnHold] + * @param {String} [checkboxes.shouldHideUnderReview] + * @param {String} [checkboxes.shouldHideOwnedBySomeoneElse] + */ +function saveCheckboxes(checkboxes) { + ReactNativeOnyx.merge(ONYXKEYS.ISSUES.CHECKBOXES, checkboxes); +} + /** * @param {Object} filters * @param {String} filters.milestone @@ -161,5 +171,6 @@ export { getEngineering, getDailyImprovements, getHotPicks, + saveCheckboxes, saveFilters, }; diff --git a/src/js/module/dashboard/ListIssuesAssigned.js b/src/js/module/dashboard/ListIssuesAssigned.js index d998d2f8..482f4daa 100644 --- a/src/js/module/dashboard/ListIssuesAssigned.js +++ b/src/js/module/dashboard/ListIssuesAssigned.js @@ -13,19 +13,34 @@ const propTypes = { /** All the GH issues assigned to the current user */ issues: PropTypes.objectOf(IssuePropTypes), + + checkboxes: PropTypes.shape({ + /** Should issues that are on HOLD be hidden? */ + shouldHideOnHold: PropTypes.bool, + + /** Should issues with "reviewing" label be hidden? */ + shouldHideUnderReview: PropTypes.bool, + + /** Should issues owned by someone else be hidden? */ + shouldHideOwnedBySomeoneElse: PropTypes.bool, + }), }; const defaultProps = { issues: null, + checkboxes: { + shouldHideOnHold: false, + shouldHideUnderReview: false, + shouldHideOwnedBySomeoneElse: false, + }, }; class ListIssuesAssigned extends React.Component { constructor(props) { super(props); - const params = new URLSearchParams(window.location.search); this.state = { - shouldHideHeldIssues: !!params.get('shouldHideOnHold'), - shouldHideUnderReviewIssues: !!params.get('shouldHideUnderReview'), - shouldHideOwnedBySomeoneElseIssues: !!params.get('shouldHideOwnedBySomeoneElse'), + shouldHideHeldIssues: props.checkboxes.shouldHideOnHold, + shouldHideUnderReviewIssues: props.checkboxes.shouldHideUnderReview, + shouldHideOwnedBySomeoneElseIssues: props.checkboxes.shouldHideOwnedBySomeoneElse, }; this.fetch = this.fetch.bind(this); this.toggleHeldFilter = this.toggleHeldFilter.bind(this); @@ -54,14 +69,17 @@ class ListIssuesAssigned extends React.Component { toggleHeldFilter() { this.setState(prevState => ({shouldHideHeldIssues: !prevState.shouldHideHeldIssues})); + Issues.saveCheckboxes({shouldHideOnHold: !this.state.shouldHideHeldIssues}); } toggleUnderReviewFilter() { this.setState(prevState => ({shouldHideUnderReviewIssues: !prevState.shouldHideUnderReviewIssues})); + Issues.saveCheckboxes({shouldHideUnderReview: !this.state.shouldHideUnderReviewIssues}); } toggleOwnedBySomeoneElseFilter() { this.setState(prevState => ({shouldHideOwnedBySomeoneElseIssues: !prevState.shouldHideOwnedBySomeoneElseIssues})); + Issues.saveCheckboxes({shouldHideOwnedBySomeoneElse: !this.state.shouldHideOwnedBySomeoneElseIssues}); } render() { @@ -190,4 +208,7 @@ export default withOnyx({ issues: { key: ONYXKEYS.ISSUES.ASSIGNED, }, + checkboxes: { + key: ONYXKEYS.ISSUES.CHECKBOXES, + }, })(ListIssuesAssigned);