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

Add unlimited points to graph #1529

Merged
merged 19 commits into from
Aug 22, 2024
Merged

Add unlimited points to graph #1529

merged 19 commits into from
Aug 22, 2024

Conversation

nicolecomputer
Copy link
Contributor

@nicolecomputer nicolecomputer commented Aug 15, 2024

Summary:

Allows adding an unlimited number of points to a graph.

unlimited.points.done.mov

Issue: LEMS-1816

Test plan:

  • Run the tests

@nicolecomputer nicolecomputer self-assigned this Aug 15, 2024
Copy link
Contributor

github-actions bot commented Aug 15, 2024

Size Change: +796 B (+0.09%)

Total Size: 857 kB

Filename Size Change
packages/perseus/dist/es/index.js 415 kB +796 B (+0.19%)
ℹ️ View Unchanged
Filename Size
packages/kas/dist/es/index.js 38.3 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 78 kB
packages/math-input/dist/es/strings.js 1.79 kB
packages/perseus-core/dist/es/index.js 1.48 kB
packages/perseus-editor/dist/es/index.js 276 kB
packages/perseus-linter/dist/es/index.js 22.2 kB
packages/perseus/dist/es/strings.js 3.31 kB
packages/pure-markdown/dist/es/index.js 3.67 kB
packages/simple-markdown/dist/es/index.js 12.4 kB

compressed-size-action

Copy link

codecov bot commented Aug 20, 2024

Codecov Report

Attention: Patch coverage is 83.19328% with 40 lines in your changes missing coverage. Please review.

Project coverage is 70.67%. Comparing base (3647119) to head (088f82d).
Report is 1 commits behind head on main.

Files Patch % Lines
...active-graphs/reducer/interactive-graph-reducer.ts 13.79% 25 Missing ⚠️
...us/src/widgets/interactive-graphs/graphs/point.tsx 82.85% 12 Missing ⚠️
...widgets/interactive-graphs/graphs/use-transform.ts 86.36% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1529      +/-   ##
==========================================
+ Coverage   70.00%   70.67%   +0.66%     
==========================================
  Files         515      518       +3     
  Lines      106417   106622     +205     
  Branches     7705    11546    +3841     
==========================================
+ Hits        74494    75350     +856     
+ Misses      31744    31272     -472     
+ Partials      179        0     -179     

Impacted file tree graph

Files Coverage Δ
packages/perseus/src/widgets/interactive-graph.tsx 51.00% <100.00%> (+0.05%) ⬆️
...seus/src/widgets/interactive-graphs/mafs-graph.tsx 99.53% <100.00%> (+0.10%) ⬆️
...teractive-graphs/reducer/initialize-graph-state.ts 86.80% <100.00%> (+0.02%) ⬆️
...ractive-graphs/reducer/interactive-graph-action.ts 98.94% <100.00%> (+0.08%) ⬆️
...widgets/interactive-graphs/graphs/use-transform.ts 96.00% <86.36%> (-4.00%) ⬇️
...us/src/widgets/interactive-graphs/graphs/point.tsx 80.00% <82.85%> (-20.00%) ⬇️
...active-graphs/reducer/interactive-graph-reducer.ts 77.76% <13.79%> (-1.98%) ⬇️

... and 140 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3647119...088f82d. Read the comment docs.

@nicolecomputer nicolecomputer changed the title WIP: Add unlimited points to graph Add unlimited points to graph Aug 20, 2024
@nicolecomputer nicolecomputer marked this pull request as ready for review August 20, 2024 21:23
@khan-actions-bot
Copy link
Contributor

Gerald

Required Reviewers
  • @Khan/perseus for changes to .changeset/big-ties-fail.md, packages/perseus/src/types.ts, packages/perseus/src/widgets/interactive-graph.tsx, packages/perseus/src/widgets/__tests__/interactive-graph.test.tsx, packages/perseus/src/widgets/interactive-graphs/mafs-graph.test.tsx, packages/perseus/src/widgets/interactive-graphs/mafs-graph.tsx, packages/perseus/src/widgets/interactive-graphs/mafs-supported-graph-types.ts, packages/perseus/src/widgets/interactive-graphs/types.ts, packages/perseus/src/widgets/interactive-graphs/graphs/point.tsx, packages/perseus/src/widgets/interactive-graphs/graphs/use-transform.test.tsx, packages/perseus/src/widgets/interactive-graphs/graphs/use-transform.ts, packages/perseus/src/widgets/interactive-graphs/reducer/initialize-graph-state.ts, packages/perseus/src/widgets/interactive-graphs/reducer/interactive-graph-action.ts, packages/perseus/src/widgets/interactive-graphs/reducer/interactive-graph-reducer.ts

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

Copy link
Member

@benchristel benchristel left a comment

Choose a reason for hiding this comment

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

It's really cool to see this coming together! The behavior seems solid; I left some suggestions for structural improvements inline.

@@ -52,6 +52,7 @@ export interface LinearSystemGraphState extends InteractiveGraphStateCommon {
export interface PointGraphState extends InteractiveGraphStateCommon {
type: "point";
coords: Coord[];
numPoints?: number | "unlimited";
Copy link
Member

Choose a reason for hiding this comment

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

Since the number of points is given by coords.length for graphs with fixed numbers of points, could this property just be a boolean? E.g. unlimitedPoints: boolean?

In any case, I think this property shouldn't be optional, since it's always set in initializeGraphState.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think I'd prefer to keep numPoints. It matches the state we receive and I don't think there are going to be any more places where it would get tricky.

Copy link
Member

Choose a reason for hiding this comment

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

Most of the code in this file is now only used in the unlimited points case. That makes me think that maybe the unlimited point graph should be a separate component. What do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I broke them out into two components. I think it's easier to read now

@khan-actions-bot khan-actions-bot requested a review from a team August 21, 2024 17:01
Copy link
Contributor

github-actions bot commented Aug 21, 2024

npm Snapshot: Published

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

Example:

yarn add @khanacademy/perseus@PR1529

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

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

Copy link
Member

@benchristel benchristel left a comment

Choose a reason for hiding this comment

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

Thanks for the updates! LGTM.

@nicolecomputer nicolecomputer merged commit 0bf2711 into main Aug 22, 2024
10 of 11 checks passed
@nicolecomputer nicolecomputer deleted the new/unlimited-points branch August 22, 2024 17:09
aemandine pushed a commit that referenced this pull request Aug 22, 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]

### Major Changes

-   [#1546](#1546) [`6cbe4947e`](6cbe494) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Release PhET widget

    This PR releases a new PhET simulation widget to Perseus that requires an
    update in order to allow the support of new, upcoming content. Older versions
    of Perseus will be unable to render content that contains this widget.

    PhET simulations come from <https://phet.colorado.edu/>.

### Minor Changes

-   [#1529](#1529) [`0bf2711c0`](0bf2711) Thanks [@nicolecomputer](https://github.com/nicolecomputer)! - Adds unlimited point graph


-   [#1542](#1542) [`a7fc2a3e3`](a7fc2a3) Thanks [@aemandine](https://github.com/aemandine)! - Design update for PhET widget


-   [#1512](#1512) [`4f24be79d`](4f24be7) Thanks [@aemandine](https://github.com/aemandine)! - Add PhET widget


-   [#1532](#1532) [`6e102f9c4`](6e102f9) Thanks [@aemandine](https://github.com/aemandine)! - Add a content editor for the PhET widget


-   [#1533](#1533) [`cc1995daf`](cc1995d) Thanks [@nishasy](https://github.com/nishasy)! - [Locked labels] View locked labels in an Interactive Graph

### Patch Changes

-   [#1539](#1539) [`7805626e1`](7805626) Thanks [@nishasy](https://github.com/nishasy)! - [Locked Labels] Implement adding/editing/deleting a standalone locked label


-   [#1541](#1541) [`36471197c`](3647119) Thanks [@nicolecomputer](https://github.com/nicolecomputer)! - Adds a finite point question to dev gallery

## @khanacademy/[email protected]

### Major Changes

-   [#1546](#1546) [`6cbe4947e`](6cbe494) Thanks [@SonicScrewdriver](https://github.com/SonicScrewdriver)! - Release PhET widget

    This PR releases a new PhET simulation widget to Perseus that requires an
    update in order to allow the support of new, upcoming content. Older versions
    of Perseus will be unable to render content that contains this widget.

    PhET simulations come from <https://phet.colorado.edu/>.

### Minor Changes

-   [#1539](#1539) [`7805626e1`](7805626) Thanks [@nishasy](https://github.com/nishasy)! - [Locked Labels] Implement adding/editing/deleting a standalone locked label


-   [#1542](#1542) [`a7fc2a3e3`](a7fc2a3) Thanks [@aemandine](https://github.com/aemandine)! - Design update for PhET widget


-   [#1532](#1532) [`6e102f9c4`](6e102f9) Thanks [@aemandine](https://github.com/aemandine)! - Add a content editor for the PhET widget


-   [#1533](#1533) [`cc1995daf`](cc1995d) Thanks [@nishasy](https://github.com/nishasy)! - [Locked labels] View locked labels in an Interactive Graph

### Patch Changes

-   Updated dependencies \[[`7805626e1`](7805626), [`0bf2711c0`](0bf2711), [`a7fc2a3e3`](a7fc2a3), [`4f24be79d`](4f24be7), [`6cbe4947e`](6cbe494), [`36471197c`](3647119), [`6e102f9c4`](6e102f9), [`cc1995daf`](cc1995d)]:
    -   @khanacademy/[email protected]

## @khanacademy/[email protected]

### Patch Changes

-   [#1541](#1541) [`36471197c`](3647119) Thanks [@nicolecomputer](https://github.com/nicolecomputer)! - Adds a finite point question to dev gallery

Author: khan-actions-bot

Reviewers: aemandine, #perseus

Required Reviewers:

Approved By: aemandine

Checks: ✅ Upload Coverage (ubuntu-latest, 20.x), ⏭️  Publish npm snapshot, ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Jest Coverage (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ gerald

Pull Request URL: #1544
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.

3 participants