-
Notifications
You must be signed in to change notification settings - Fork 350
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
Create PhET simulation widget #1512
Conversation
GeraldRequired Reviewers
Don't want to be involved in this pull request? Comment |
Size Change: +20.9 kB (+2.45%) Total Size: 877 kB
ℹ️ View Unchanged
|
npm Snapshot: PublishedGood news!! We've packaged up the latest commit from this PR (fbdc96b) and published it to npm. You Example: yarn add @khanacademy/perseus@PR1512 If you are working in Khan Academy's webapp, you can run: ./dev/tools/bump_perseus_version.sh -t PR1512 |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## phet-widget #1512 +/- ##
===============================================
+ Coverage 70.14% 70.92% +0.77%
===============================================
Files 516 521 +5
Lines 106239 106553 +314
Branches 7622 10974 +3352
===============================================
+ Hits 74526 75577 +1051
+ Misses 31596 30976 -620
+ Partials 117 0 -117
... and 129 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good stuff. I have some suggestions but overall this looks great.
dc1bf73
to
b2f4049
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, we have a mixture of "older style" stories mixed in with a few modern ones. It looks like this story came from one of the older ones.
Could you migrate this to use the format defined here: https://storybook.js.org/docs/get-started/whats-a-story
It will give better typing in these stories especially for the props that the widget supports.
Happy to do a short pairing session to migrate if you like. :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Jeremy! Thanks for the note! Should I use the new story style for the PhET sim and the PhET sim editor, or just the PhET sim editor?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Resolved! I am doing the new story style for both.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect, that's what I would have suggested! :)
import {action} from "@storybook/addon-actions"; | ||
import * as React from "react"; | ||
|
||
import PhetSimEditor from "../phet-sim-editor"; | ||
|
||
type StoryArgs = Record<any, any>; | ||
|
||
type Story = { | ||
title: string; | ||
}; | ||
|
||
export default { | ||
title: "PerseusEditor/Widgets/PhET Simulation Editor", | ||
} as Story; | ||
|
||
export const Default = (args: StoryArgs): React.ReactElement => { | ||
return <PhetSimEditor onChange={action("onChange")} />; | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an improvement, but you can get closer (and have better typing)! :)
import type { Meta, StoryObj } from '@storybook/react';
import PhetSimEditor from "../phet-sim-editor";
const meta: Meta<typeof PhetSimEditor > = {
component: PhetSimEditor,
};
export default meta;
type Story = StoryObj<typeof PhetSimEditor >;
export const Default: Story = {
args: {
onChange: action("onChange"),
},
};
This means you don't even need a render function for the story, just the data. :)
## Summary: Releases the PhET Simulation widget. The [PhET Interactive Simulations](https://phet.colorado.edu/) initiative, run by the University of Colorado Boulder, develops interactive simulations for math and science education that are available for free. These simulations, known as PhET sims, are designed based on comprehensive educational research. They provide a game-like, intuitive platform that encourages students to learn by exploring and discovering concepts on their own. ## Commit history: This feature branch PR includes the following review branch PRs: - Create PhET simulation widget (#1512) - Add PhET simulation content editor (#1532) - Design updates (#1542) Issue: LEMS-XXXX ## Test plan: Confirm all tests pass. Author: SonicScrewdriver Reviewers: Myranae, aemandine Required Reviewers: Approved By: Myranae Checks: ⌛ Upload Coverage (ubuntu-latest, 20.x), ✅ codecov/project, ✅ codecov/patch, ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Jest Coverage (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ gerald, ✅ Upload Coverage (ubuntu-latest, 20.x), ✅ Publish npm snapshot (ubuntu-latest, 20.x), ✅ Cypress (ubuntu-latest, 20.x), ✅ Jest Coverage (ubuntu-latest, 20.x), ✅ Check builds for changes in size (ubuntu-latest, 20.x), ✅ Check for .changeset entries for all changed files (ubuntu-latest, 20.x), ✅ Lint, Typecheck, Format, and Test (ubuntu-latest, 20.x), ✅ Publish Storybook to Chromatic (ubuntu-latest, 20.x), ✅ gerald Pull Request URL: #1546
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
Summary:
Create a new Perseus widget for PhET simulations with the following features:
I have documented the Perseus widget creation process here.
Issue: LEMS-2167
Test plan:
this.locale
to some nonexistent locale and verify that the warning shows up