Skip to content

Commit

Permalink
Merge pull request #221 from Expensify/tgolen-checkboxes-onyx
Browse files Browse the repository at this point in the history
Move checkbox config to onyx
  • Loading branch information
grgia authored Jan 2, 2025
2 parents 1fb35dc + e903dc8 commit a78acad
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 8 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
2 changes: 1 addition & 1 deletion assets/manifest-firefox.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
2 changes: 1 addition & 1 deletion assets/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
1 change: 1 addition & 0 deletions src/js/ONYXKEYS.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export default {
DAILY_IMPROVEMENTS: 'issueDailyImprovements',
ENGINEERING: 'issueEngineering',
FILTER: 'issueFilter',
CHECKBOXES: 'issueCheckboxes',
HOTPICKS: 'issueHotPicks',
},

Expand Down
11 changes: 11 additions & 0 deletions src/js/lib/actions/Issues.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -161,5 +171,6 @@ export {
getEngineering,
getDailyImprovements,
getHotPicks,
saveCheckboxes,
saveFilters,
};
29 changes: 25 additions & 4 deletions src/js/module/dashboard/ListIssuesAssigned.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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() {
Expand Down Expand Up @@ -190,4 +208,7 @@ export default withOnyx({
issues: {
key: ONYXKEYS.ISSUES.ASSIGNED,
},
checkboxes: {
key: ONYXKEYS.ISSUES.CHECKBOXES,
},
})(ListIssuesAssigned);

0 comments on commit a78acad

Please sign in to comment.