14 lines
1.2 KiB
TypeScript
14 lines
1.2 KiB
TypeScript
import Head from 'next/head';
|
|
import fixed from '../content/templates/layouts.json';
|
|
import standard from '../content/standard-layout.json';
|
|
import {pageParameters} from '../lib/series';
|
|
import type {Design} from '../lib/native-layout';
|
|
import {NativeArtwork} from './NativeResult';
|
|
export function NativeSeries({design,page,quality}:{design:Design;page:number|null;quality:boolean}){
|
|
const doc=design.document!;
|
|
return <main className={'native-layout-page native-series'+(quality?' native-export':'')} data-style-version={doc.style.version} data-revision={design.revision}>
|
|
<Head><title>{design.name} · {doc.pages.length}页</title><meta name="description" content={doc.brief.intent}/></Head>
|
|
{doc.pages.map((p,index)=>{if(page!==null&&page!==index+1)return null;const layout=[standard,...fixed].find(l=>l.id===p.layoutId)!;return <div className="series-page" key={p.key} data-page={index+1} data-page-key={p.key} data-page-role={p.role}><NativeArtwork layout={layout} quality={quality} design={{...design,name:design.name+' · '+(index+1),layoutId:p.layoutId,parameters:pageParameters(doc,p,layout)}}/>{!quality&&<p className="series-page-number">{String(index+1).padStart(2,'0')} / {doc.pages.length}</p>}</div>})}
|
|
</main>;
|
|
}
|