Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addition of new alert when json is converted. #1859

Merged
merged 3 commits into from
Nov 14, 2024
Merged

Conversation

SonicScrewdriver
Copy link
Contributor

@SonicScrewdriver SonicScrewdriver commented Nov 14, 2024

Summary:

This PR adds an alert banner to the editors to notify Content Editors when pre-existing content has been converted into modern widgets. (ie Input Number has become Numeric Input)

Screenshot:

Screenshot 2024-11-14 at 12 59 01 PM

Test plan:

  • Manual testing

@SonicScrewdriver SonicScrewdriver self-assigned this Nov 14, 2024
@khan-actions-bot khan-actions-bot requested a review from a team November 14, 2024 21:00
@khan-actions-bot
Copy link
Contributor

khan-actions-bot commented Nov 14, 2024

Gerald

Required Reviewers
  • @Khan/perseus for changes to .changeset/many-boxes-wave.md, packages/perseus-editor/src/article-editor.tsx, packages/perseus-editor/src/editor-page.tsx, packages/perseus-editor/src/util/deprecated-widgets/modernize-widgets-utils.ts

Don't want to be involved in this pull request? Comment #removeme and we won't notify you of further changes.

if (!conversionRequired(json)) {
return json;
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't need to check here any more, as we're doing it directly in the editors. This allows us to know when the json has been updated! :)

Copy link
Contributor

github-actions bot commented Nov 14, 2024

npm Snapshot: Published

Good news!! We've packaged up the latest commit from this PR (502f602) and published it to npm. You
can install it using the tag PR1859.

Example:

yarn add @khanacademy/perseus@PR1859

If you are working in Khan Academy's webapp, you can run:

./dev/tools/bump_perseus_version.sh -t PR1859

Copy link
Contributor

github-actions bot commented Nov 14, 2024

Size Change: +350 B (+0.04%)

Total Size: 872 kB

Filename Size Change
packages/perseus-editor/dist/es/index.js 285 kB +350 B (+0.12%)
ℹ️ View Unchanged
Filename Size
packages/kas/dist/es/index.js 38.9 kB
packages/keypad-context/dist/es/index.js 760 B
packages/kmath/dist/es/index.js 4.27 kB
packages/math-input/dist/es/index.js 77.8 kB
packages/math-input/dist/es/strings.js 1.79 kB
packages/perseus-core/dist/es/index.js 1.48 kB
packages/perseus-linter/dist/es/index.js 22.2 kB
packages/perseus/dist/es/index.js 420 kB
packages/perseus/dist/es/strings.js 3.54 kB
packages/pure-markdown/dist/es/index.js 3.66 kB
packages/simple-markdown/dist/es/index.js 12.4 kB

compressed-size-action

? props.json.map(convertDeprecatedWidgets)
: convertDeprecatedWidgets(props.json as PerseusRenderer);
}

Copy link
Contributor Author

@SonicScrewdriver SonicScrewdriver Nov 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I felt it was better to keep this a little verbose to help with legibility

Copy link
Collaborator

@jeremywiebe jeremywiebe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense. :)

Comment on lines 75 to 77
const conversionWarningRequired = conversionRequired(
props.json as PerseusRenderer,
);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is probably not be safe. I'm pretty sure there are places in webapp where it passes in ReadonlyArray<PerseusRenderer> (essentially the PeprseusArticle type). I think it can be fixed fairly easily though with:

Suggested change
const conversionWarningRequired = conversionRequired(
props.json as PerseusRenderer,
);
const conversionWarningRequired =
props.json instanceof Array
? props.json
.map(conversionRequired)
.reduce((p, v) => p && v, false)
: conversionRequired(props.json);

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh great catch, thank you! I forgot to check for the sections as part of the conversionRequired check


// Convert the json if needed
if (conversionWarningRequired) {
json = Array.isArray(props.json)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you use props.json instanceof Array. That will still do array checking but properly narrow props.json so you don't need the as.

{this.state.conversionWarningRequired && (
<div style={{marginBottom: 10}}>
<Banner
text="Pre-existing Input Number Widgets have been converted to Numeric Inputs. Please review the changes before publishing."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: "Pre-existing" threw me... where did they exist before? :)

Perhaps "Deprecated Input Number widgets were found in this article! They have been automatically upgraded to Numeric Inputs. Please review the changes before publishing."

{this.state.conversionWarningRequired && (
<div style={{marginBottom: 10}}>
<Banner
text="Pre-existing Input Number Widgets have been converted to Numeric Inputs. Please review the changes before publishing."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same nit about "pre-existing". 😄

@SonicScrewdriver SonicScrewdriver merged commit dcf1fbe into main Nov 14, 2024
8 of 9 checks passed
@SonicScrewdriver SonicScrewdriver deleted the numeric-alert branch November 14, 2024 22:51
SonicScrewdriver added a commit that referenced this pull request Nov 14, 2024
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @khanacademy/[email protected]

### Minor Changes

- [#1731](#1731)
[`27126aa00`](27126aa)
Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! -
Conversion of Input Number to Numeric Input

### Patch Changes

- [#1846](#1846)
[`8eb1ff5d1`](8eb1ff5)
Thanks [@benchristel](https://github.com/benchristel)! - Internal: add
widget parsers for ADR 773.


- [#1839](#1839)
[`150888870`](1508888)
Thanks [@nishasy](https://github.com/nishasy)! - [Locked Figure Labels]
Util function to generate spoken math + use it within Locked Point aria
labels

## @khanacademy/[email protected]

### Minor Changes

- [#1859](#1859)
[`dcf1fbe35`](dcf1fbe)
Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! -
Addition of a new alert for the content editors when Input numbers are
converted to Numeric Inputs


- [#1731](#1731)
[`27126aa00`](27126aa)
Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! -
Conversion of Input Number to Numeric Input

### Patch Changes

- [#1839](#1839)
[`150888870`](1508888)
Thanks [@nishasy](https://github.com/nishasy)! - [Locked Figure Labels]
Util function to generate spoken math + use it within Locked Point aria
labels

- Updated dependencies
\[[`8eb1ff5d1`](8eb1ff5),
[`150888870`](1508888),
[`27126aa00`](27126aa)]:
    -   @khanacademy/[email protected]
SonicScrewdriver added a commit that referenced this pull request Nov 22, 2024
SonicScrewdriver added a commit that referenced this pull request Nov 22, 2024
… logic (#1905)

## Summary:
In order to unblock Perseus, we are reverting the following commits: 

- [x] [#1888](#1888) [d0e7a03](d0e7a03) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Fixing issue with Input Numbers that have a value of 0
- [x] [#1884](#1884) [b4cf444](b4cf444) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Ensuring UserInput and Rubric widget keys match for edge cases
- [x] [#1879](#1879) [04d6e60](04d6e60) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Fixing conflicts that arose from scoring and widget conversion efforts
- [x] [#1753](#1753) [c1ba55f](c1ba55f) Thanks [@handeyeco](https://github.com/handeyeco)! - Change ServerItemRenderer scoring APIs to externalize scoring
- [x] [#1866](#1866) [94eba15](94eba15) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Fixing a regression and a bug in the Input Conversion Logic
- [x] [#1859](#1859) [dcf1fbe](dcf1fbe) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Addition of a new alert for the content editors when Input numbers are converted to Numeric Inputs
- [x] [#1731](#1731) [27126aa](27126aa) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Conversion of Input Number to Numeric Input

## Test plan:
- manual testing

Author: SonicScrewdriver

Reviewers: catandthemachines, #perseus

Required Reviewers:

Approved By: catandthemachines

Checks: ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ gerald, 🚫 Publish npm snapshot (ubuntu-latest, 20.x), 🚫 Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), 🚫 Check for .changeset entries for all changed files (ubuntu-latest, 20.x), 🚫 Check builds for changes in size (ubuntu-latest, 20.x), 🚫 Cypress (ubuntu-latest, 20.x), ✅ gerald, ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ Publish Storybook to Chromatic (ubuntu-latest, 20.x), ✅ gerald

Pull Request URL: #1905
benchristel pushed a commit that referenced this pull request Nov 26, 2024
… logic (#1905)

## Summary:
In order to unblock Perseus, we are reverting the following commits: 

- [x] [#1888](#1888) [d0e7a03](d0e7a03) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Fixing issue with Input Numbers that have a value of 0
- [x] [#1884](#1884) [b4cf444](b4cf444) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Ensuring UserInput and Rubric widget keys match for edge cases
- [x] [#1879](#1879) [04d6e60](04d6e60) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Fixing conflicts that arose from scoring and widget conversion efforts
- [x] [#1753](#1753) [c1ba55f](c1ba55f) Thanks [@handeyeco](https://github.com/handeyeco)! - Change ServerItemRenderer scoring APIs to externalize scoring
- [x] [#1866](#1866) [94eba15](94eba15) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Fixing a regression and a bug in the Input Conversion Logic
- [x] [#1859](#1859) [dcf1fbe](dcf1fbe) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Addition of a new alert for the content editors when Input numbers are converted to Numeric Inputs
- [x] [#1731](#1731) [27126aa](27126aa) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Conversion of Input Number to Numeric Input

## Test plan:
- manual testing

Author: SonicScrewdriver

Reviewers: catandthemachines, #perseus

Required Reviewers:

Approved By: catandthemachines

Checks: ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ gerald, 🚫 Publish npm snapshot (ubuntu-latest, 20.x), 🚫 Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), 🚫 Check for .changeset entries for all changed files (ubuntu-latest, 20.x), 🚫 Check builds for changes in size (ubuntu-latest, 20.x), 🚫 Cypress (ubuntu-latest, 20.x), ✅ gerald, ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ Publish Storybook to Chromatic (ubuntu-latest, 20.x), ✅ gerald

Pull Request URL: #1905
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants