Niedzielski has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/383406 )
Change subject: Update: add revision support to wiki endpoint ...................................................................... Update: add revision support to wiki endpoint Change-Id: I3439048cc3094218f17edc107d1084aa484f841a --- M src/common/pages/home.tsx M src/common/pages/wiki.tsx M src/common/routers/api.test.ts M src/common/routers/api.ts M src/common/routers/route.ts 5 files changed, 41 insertions(+), 11 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/marvin refs/changes/06/383406/1 diff --git a/src/common/pages/home.tsx b/src/common/pages/home.tsx index bb478eb..8e33bc6 100644 --- a/src/common/pages/home.tsx +++ b/src/common/pages/home.tsx @@ -45,6 +45,11 @@ { title: "Carrot cake", text: "Encoding redirect" + }, + { + title: "Ice_cream_cake", + revision: "24242119", + text: "An arbitrary revision" } ]; return ( @@ -69,11 +74,21 @@ <h3>Pages</h3> <ul> - {testPages.map(({ title, text }) => ( - <li> - <Link href={wiki.toPath({ title })}>{text}</Link> - </li> - ))} + {testPages.map( + ({ + title, + revision, + text + }: { + title: string; + revision?: string; + text: string; + }) => ( + <li> + <Link href={wiki.toPath({ title, revision })}>{text}</Link> + </li> + ) + )} </ul> <h3>Summaries</h3> diff --git a/src/common/pages/wiki.tsx b/src/common/pages/wiki.tsx index 3de8e71..3b008c0 100644 --- a/src/common/pages/wiki.tsx +++ b/src/common/pages/wiki.tsx @@ -15,14 +15,19 @@ * an encoded PageTitlePath. */ title: PageTitleID | PageTitlePath; + + revision?: string; } export interface Props { page: PageModel; } -export const getInitialProps = ({ title }: Params): Promise<Props> => - requestPage({ titlePath: title }).then(page => ({ page })); +export const getInitialProps = ({ title, revision }: Params): Promise<Props> => + requestPage({ + titlePath: title, + revision: (revision && parseInt(revision, 10)) || undefined + }).then(page => ({ page })); export const Component = ({ page }: Props): JSX.Element => ( <App> diff --git a/src/common/routers/api.test.ts b/src/common/routers/api.test.ts index 95d778c..a349fe7 100644 --- a/src/common/routers/api.test.ts +++ b/src/common/routers/api.test.ts @@ -15,7 +15,8 @@ const expected: RouteParams = {}; Object.keys((params as RouteParams) || {}).forEach(name => { const value = (params as RouteParams)[name]; - expected[name] = encodeURIComponent(value); + expected[name] = + value === undefined ? undefined : encodeURIComponent(value); }); const path = route.toPath(params); @@ -28,7 +29,16 @@ [ { name: "home", route: home, params: undefined }, { name: "about", route: about, params: undefined }, - { name: "wiki", route: wiki, params: { title: "title" } }, + { + name: "wiki (latest)", + route: wiki, + params: { title: "title", revision: undefined } + }, + { + name: "wiki (revision)", + route: wiki, + params: { title: "title", revision: "1" } + }, { name: "summary", route: summary, params: { title: "title" } }, { name: "styleGuide", route: styleGuide, params: undefined }, { name: "notFound", route: notFound, params: { 0: "/404" } } diff --git a/src/common/routers/api.ts b/src/common/routers/api.ts index a420c31..0116c09 100644 --- a/src/common/routers/api.ts +++ b/src/common/routers/api.ts @@ -21,7 +21,7 @@ }); export const wiki: Route<PageParams, PageProps> = newRoute({ - path: "/wiki/:title", + path: "/wiki/:title/:revision?", importModule: () => import(/* webpackChunkName: "pages/wiki" */ "../pages/wiki"), chunkName: "pages/wiki" diff --git a/src/common/routers/route.ts b/src/common/routers/route.ts index fce500f..eeebcd5 100644 --- a/src/common/routers/route.ts +++ b/src/common/routers/route.ts @@ -7,7 +7,7 @@ * Route.url(). */ export interface RouteParams { - [name: string]: string; + [name: string]: string | undefined; } /** -- To view, visit https://gerrit.wikimedia.org/r/383406 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I3439048cc3094218f17edc107d1084aa484f841a Gerrit-PatchSet: 1 Gerrit-Project: marvin Gerrit-Branch: master Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org> Gerrit-Reviewer: Sniedzielski <sniedziel...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits