μ ν PR: PR 3, PR 4 (API μΉκ²© μλ£ ν) PR #695 ENvironmentSet 리뷰 λ°μ (FEP-2129)
PR #695μμ ENvironmentSetμ΄ μ§μ ν λ¬Έμ μ½λ μμ μ€λ₯λ₯Ό μμ νλ€. (μμ /renameμ PR 6bλ‘, structured-activity λ¬Έμ κ°μ μ PR 6cλ‘ λΆλ¦¬.)
μ€μ StackflowOutput νμ
(integrations/react/src/stackflow.tsx:46-50):
export type StackflowOutput = {
Stack: StackComponentType;
actions: Actions;
stepActions: StepActions<ActivityBaseParams>;
};useFlowλ λ°νκ°μ ν¬ν¨λμ§ μμΌλ©°, @stackflow/reactμμ λ
립 ν
μΌλ‘ μ§μ importν΄μΌ νλ€.
μμ νμΌ:
| νμΌ | λΌμΈ |
|---|---|
docs/pages/docs/get-started/installation.en.mdx |
L40, L70 |
docs/pages/docs/get-started/installation.ko.mdx |
L40, L71 |
docs/pages/docs/get-started/activity.en.mdx |
L81 |
docs/pages/docs/get-started/activity.ko.mdx |
L84 |
docs/pages/docs/advanced/history-sync.en.mdx |
L43 |
docs/pages/docs/advanced/history-sync.ko.mdx |
L43 |
docs/pages/docs/migration-v2.en.mdx |
L52 ("After") |
docs/pages/docs/migration-v2.ko.mdx |
L52 ("λ³κ²½ ν") |
μμ λ°©ν₯:
- const { Stack, useFlow } = stackflow(...)
+ const { Stack } = stackflow(...)
+ import { useFlow } from "@stackflow/react";v2 ActivityComponentTypeμ params κ°μ²΄ νμ
λμ activity μ΄λ¦ string literalμ λ°λλ€. κΈ°μ‘΄ params κ°μ²΄ λ°©μμ ActivityComponentTypeByParamsλ‘ rename.
μμ νμΌ:
docs/pages/docs/get-started/navigating-activities.en.mdxL141-145docs/pages/docs/get-started/navigating-activities.ko.mdxL143-147
μμ λ°©ν₯:
- type ArticleParams = { title: string; };
- const Article: ActivityComponentType<ArticleParams> = ({ params }) => {
+ declare module "@stackflow/config" {
+ interface Register {
+ Article: { title: string };
+ }
+ }
+ const Article: ActivityComponentType<"Article"> = ({ params }) => {ActivityLoaderArgsλ @stackflow/configμμλ§ exportλλ€ (config/src/index.ts:4). @stackflow/reactμμλ λ΄λΆ μ¬μ©λ§ νλ©° re-exportνμ§ μλλ€.
μμ νμΌ:
| νμΌ | λΌμΈ |
|---|---|
docs/pages/docs/advanced/loader-api.en.mdx |
L6 |
docs/pages/docs/advanced/loader-api.ko.mdx |
L6 |
docs/pages/docs/advanced/preloading.en.mdx |
L12 |
docs/pages/docs/advanced/preloading.ko.mdx |
L12 |
loader-api.{en,ko}.mdxλ PR 6bμμ μμ μμ . PR 6bμ λ¨Έμ§ μμ μ‘°μ¨ νμ.
μμ λ°©ν₯:
- import { ActivityLoaderArgs, useLoaderData } from "@stackflow/react";
+ import type { ActivityLoaderArgs } from "@stackflow/config";
+ import { useLoaderData } from "@stackflow/react";νμ¬ λ¬Έμ (link.en.mdx:45, link.ko.mdx:45):
"If not provided, it defaults to no animation."
μ€μ λμ (extensions/link/src/Link.tsx:89-99): animateλ₯Ό μλ΅νλ©΄ λΉ μ΅μ
{}κ° μ λ¬λμ΄ push/replaceμ κΈ°λ³Έ λμ(μ λλ©μ΄μ
ON)μ΄ μ μ©λλ€. μ€λͺ
μ "κΈ°λ³Έ μ λλ©μ΄μ
μ μ©"μΌλ‘ μμ .
μ€μ LinkProps (Link.tsx:24-31):
export interface LinkProps<K extends RegisteredActivityName> extends AnchorProps {
ref?: React.RefObject<HTMLAnchorElement>;
activityName: K;
activityParams: InferActivityParams<K>;
animate?: boolean;
replace?: boolean;
}urlPatternOptionsλ config.historySyncμμ λ΄λΆμ μΌλ‘ μ¬μ©λ λΏ μ¬μ©μ propμ΄ μλλ€.
μμ νμΌ:
docs/pages/api-references/plugins/link.en.mdxL47 β prop λ¬Έμ μ κ±°docs/pages/api-references/plugins/link.ko.mdxL47 β prop λ¬Έμ μ κ±°
λ¬Έμμλ React.ForwardedRef<HTMLAnchorElement>λ‘ κΈ°μ¬λμ΄ μμΌλ μ€μ λ React.RefObject<HTMLAnchorElement>.
μμ νμΌ:
docs/pages/api-references/plugins/link.en.mdxL48docs/pages/api-references/plugins/link.ko.mdxL48
νμ¬ v1 API ν¨ν΄μ κ·Έλλ‘ μ¬μ© μ€:
const { Stack, useFlow } = stackflow({ activities: { ... } })routesμ΅μ (v2μμλ configμ μ μΈ)
v2 config-first ν¨ν΄μΌλ‘ μ λ©΄ μ λ°μ΄νΈ.
μμ νμΌ:
docs/pages/api-references/plugins/plugin-history-sync.en.mdxdocs/pages/api-references/plugins/plugin-history-sync.ko.mdx
νμ¬:
import { useFlow } from "./stackflow";./stackflowλΌλ νμΌ κ²½λ‘κ° λ¬΅μμ μ΄μ΄μ μ΄ν΄κ° μ΄λ ΅λ€. stackflow() ν©ν 리μμ useFlowλ₯Ό destructuringνμ¬ exportνλ μ 체 λ§₯λ½μ 보μ¬μ£Όλλ‘ νμ₯.
νμ¬:
| `useFlow()` from `./stackflow` | `useFlow()` from `@stackflow/react` |
νμΌ κ²½λ‘ λμ stackflow() ν©ν 리λΌλ ννμΌλ‘ μμ .
μμ νμΌ:
docs/pages/docs/migration-v2.en.mdxdocs/pages/docs/migration-v2.ko.mdx
write-plugin.ko.mdx:262: Gνμ¬ μ€νμ μνλ₯Ό κ°μ Έμ¬ μ μμ΄μ β νμ¬ μ€νμ μνλ₯Ό κ°μ Έμ¬ μ μμ΄μ
initialPushedEventλ μ‘΄μ¬νμ§ μλ ν
. μ¬λ°λ₯Έ μ΄λ¦μ overrideInitialEvents.
μμ νμΌ:
docs/pages/docs/advanced/write-plugin.en.mdxL261, L272docs/pages/docs/advanced/write-plugin.ko.mdxL269, L280
- μμ λ λͺ¨λ νμΌμμ
useFlowκ°@stackflow/reactμμ μ§μ import -
stackflow()destructuringμuseFlowλ―Έν¬ν¨ -
ActivityComponentType<ParamsObject>βActivityComponentType<"ActivityName"> -
ActivityLoaderArgsimport κ²½λ‘κ°@stackflow/configλ‘ μμ -
animateκΈ°λ³Έκ° μ€λͺ μ μ -
urlPatternOptionsprop λ¬Έμ μ κ±° - Link ref νμ
React.RefObjectλ‘ μμ -
plugin-history-syncλ¬Έμ v2 ν¨ν΄ -
migration-v2Before μμ/λμν μμ -
write-pluginμ€ν/lifecycle hook μ΄λ¦ μμ - EN/KO μμͺ½ λκΈ°ν
- λ¬Έμ μ¬μ΄νΈ λ‘컬 λΉλ μ μ