-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #453 from oaknational/rc-20241216-2
build: release candidate
- Loading branch information
Showing
83 changed files
with
1,657 additions
and
459 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -55,4 +55,6 @@ yarn-error.log* | |
.vscode/*.settings.json | ||
|
||
.sonar | ||
.sonar/**/* | ||
.sonar/**/* | ||
|
||
dependency-graph.svg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
import "@storybook/csf"; | ||
|
||
type ChromaticModes = "mobile" | "mobile-wide" | "desktop" | "desktop-wide"; | ||
|
||
export function chromaticParams(modes: ChromaticModes[]) { | ||
return { | ||
chromatic: { | ||
modes: { | ||
...(modes.includes("mobile") && { | ||
mobile: { viewport: "mobile" }, | ||
}), | ||
...(modes.includes("mobile-wide") && { | ||
mobile: { viewport: "mobile-wide" }, | ||
}), | ||
...(modes.includes("desktop") && { | ||
desktop: { viewport: "desktop" }, | ||
}), | ||
...(modes.includes("desktop-wide") && { | ||
"desktop-wide": { viewport: "desktopWide" }, | ||
}), | ||
}, | ||
}, | ||
}; | ||
} | ||
|
||
declare module "@storybook/csf" { | ||
interface Parameters { | ||
/** | ||
* Parameters for chromatic | ||
*/ | ||
chromatic?: { | ||
/** | ||
* Delay capture for a fixed time (in milliseconds) to allow your story to get into | ||
* the intended state | ||
* | ||
* @see [delaying snapshots chromatic documentation](https://www.chromatic.com/docs/delay) | ||
*/ | ||
delay?: number; | ||
/** | ||
* Override this behavior in instances where a single pixel change is not flagged by | ||
* Chromatic but should be | ||
* | ||
* * @see [anti-aliasing chromatic documentation](https://www.chromatic.com/docs/threshold#anti-aliasing) | ||
* | ||
* @default false | ||
*/ | ||
diffIncludeAntiAliasing?: boolean; | ||
/** | ||
* The diffThreshold parameter allows you to fine tune the threshold for visual change | ||
* between snapshots before they're flagged by Chromatic. Sometimes you need assurance | ||
* to the sub-pixel and other times you want to skip visual noise generated by | ||
* non-deterministic rendering such as anti-aliasing. | ||
* | ||
* 0 is the most accurate. 1 is the least accurate. | ||
* | ||
* @default 0.063 | ||
*/ | ||
diffThreshold?: number; | ||
/** | ||
* You can omit stories entirely from Chromatic testing using the disable story parameter. | ||
* | ||
* @see [ignoring elements chromatic documentation](https://www.chromatic.com/docs/ignoring-elements) | ||
*/ | ||
disable?: boolean; | ||
/** | ||
* Modes | ||
* | ||
* @see [modes chromatic documentation](https://www.chromatic.com/docs/modes) | ||
*/ | ||
modes?: Record< | ||
string, | ||
{ | ||
viewport?: string | number; | ||
theme?: "light" | "dark"; | ||
backgrounds?: { value: string }; | ||
} | ||
>; | ||
/** | ||
* Define one or more viewport sizes to capture. Note, units are considered in pixels | ||
*/ | ||
viewports?: number[]; | ||
/** | ||
* To specify that Chromatic should pause the animation at the end instead of reseting | ||
* them to their beginning state. | ||
* | ||
* @see [animations chromatic documentation](https://www.chromatic.com/docs/animations) | ||
*/ | ||
pauseAnimationAtEnd?: boolean; | ||
}; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
import React from "react"; | ||
|
||
import type { Decorator } from "@storybook/react"; | ||
import { fn } from "@storybook/test"; | ||
|
||
import { | ||
analyticsContext, | ||
type AnalyticsContext, | ||
} from "../../src/components/ContextProviders/AnalyticsProvider"; | ||
|
||
declare module "@storybook/csf" { | ||
interface Parameters { | ||
analyticsContext?: Partial<AnalyticsContext>; | ||
} | ||
} | ||
|
||
export const AnalyticsDecorator: Decorator = (Story, { parameters }) => { | ||
return ( | ||
<analyticsContext.Provider | ||
value={ | ||
{ | ||
track: fn(), | ||
trackEvent: fn(), | ||
identify: fn(), | ||
reset: fn(), | ||
page: fn(), | ||
posthogAiBetaClient: {}, | ||
...parameters.analyticsContext, | ||
} as unknown as AnalyticsContext | ||
} | ||
> | ||
<Story /> | ||
</analyticsContext.Provider> | ||
); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import React from "react"; | ||
|
||
import type { Decorator } from "@storybook/react"; | ||
|
||
import { | ||
ChatContext, | ||
type ChatContextProps, | ||
} from "../../src/components/ContextProviders/ChatProvider"; | ||
|
||
declare module "@storybook/csf" { | ||
interface Parameters { | ||
chatContext?: Partial<ChatContextProps>; | ||
} | ||
} | ||
|
||
export const ChatDecorator: Decorator = (Story, { parameters }) => ( | ||
<ChatContext.Provider value={parameters.chatContext as ChatContextProps}> | ||
<Story /> | ||
</ChatContext.Provider> | ||
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
import React from "react"; | ||
|
||
import type { Decorator } from "@storybook/react"; | ||
import invariant from "tiny-invariant"; | ||
|
||
import { | ||
DemoContext, | ||
type DemoContextProps, | ||
} from "@/components/ContextProviders/Demo"; | ||
|
||
declare module "@storybook/csf" { | ||
interface Parameters { | ||
demoContext?: DemoContextProps; | ||
} | ||
} | ||
|
||
export const DemoDecorator: Decorator = (Story, { parameters }) => { | ||
const value = parameters.demoContext; | ||
invariant( | ||
value, | ||
"DemoDecorator requires a DemoContext. Please call ...demoParams() in the parameters", | ||
); | ||
|
||
return ( | ||
<DemoContext.Provider value={value}> | ||
<Story /> | ||
</DemoContext.Provider> | ||
); | ||
}; | ||
|
||
const demoBase: DemoContextProps["demo"] = { | ||
appSessionsRemaining: 2, | ||
appSessionsPerMonth: 3, | ||
contactHref: "https://share.hsforms.com/1R9ulYSNPQgqElEHde3KdhAbvumd", | ||
}; | ||
|
||
type DemoParams = { | ||
isDemoUser: boolean; | ||
demo?: Partial<DemoContextProps["demo"]>; | ||
isSharingEnabled?: boolean; | ||
}; | ||
export const demoParams = ( | ||
args: DemoParams, | ||
): { demoContext: DemoContextProps } => { | ||
const isSharingEnabled = args.isSharingEnabled ?? true; | ||
|
||
const context: DemoContextProps = args.isDemoUser | ||
? { | ||
isDemoUser: true, | ||
demo: { ...demoBase, ...args.demo }, | ||
isSharingEnabled, | ||
} | ||
: { | ||
isDemoUser: false, | ||
demo: undefined, | ||
isSharingEnabled, | ||
}; | ||
|
||
return { | ||
demoContext: context, | ||
}; | ||
}; |
30 changes: 30 additions & 0 deletions
30
apps/nextjs/.storybook/decorators/DialogContentDecorator.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
import React from "react"; | ||
|
||
import type { Decorator } from "@storybook/react"; | ||
import { fn } from "@storybook/test"; | ||
|
||
import type { DialogTypes } from "../../src/components/AppComponents/Chat/Chat/types"; | ||
import { DialogContext } from "../../src/components/AppComponents/DialogContext"; | ||
|
||
declare module "@storybook/csf" { | ||
interface Parameters { | ||
dialogWindow?: DialogTypes; | ||
} | ||
} | ||
|
||
export const DialogContentDecorator: Decorator = (Story, { parameters }) => { | ||
return ( | ||
<DialogContext.Provider | ||
value={{ | ||
dialogWindow: parameters.dialogWindow ?? "", | ||
setDialogWindow: fn(), | ||
dialogProps: {}, | ||
setDialogProps: fn(), | ||
openSidebar: false, | ||
setOpenSidebar: fn(), | ||
}} | ||
> | ||
<Story /> | ||
</DialogContext.Provider> | ||
); | ||
}; |
21 changes: 21 additions & 0 deletions
21
apps/nextjs/.storybook/decorators/LessonPlanTrackingDecorator.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import React from "react"; | ||
|
||
import type { Decorator } from "@storybook/react"; | ||
import { fn } from "@storybook/test"; | ||
|
||
import { LessonPlanTrackingContext } from "../../src/lib/analytics/lessonPlanTrackingContext"; | ||
|
||
export const LessonPlanTrackingDecorator: Decorator = (Story) => ( | ||
<LessonPlanTrackingContext.Provider | ||
value={{ | ||
onClickContinue: fn(), | ||
onClickRetry: fn(), | ||
onClickStartFromExample: fn(), | ||
onClickStartFromFreeText: fn(), | ||
onStreamFinished: fn(), | ||
onSubmitText: fn(), | ||
}} | ||
> | ||
<Story /> | ||
</LessonPlanTrackingContext.Provider> | ||
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.