Table, List ותרשימים
החלפת שורות שנבנו ידנית ברכיב Table שניתן למיון ובתרשים שלא מזיז את ה-layout.
בפרק הזה
- טבלה עם מיון
- תרשים מעל הטבלה
- רכיבים נוספים
יש להחליף את השורות שנכתבו ידנית ברכיבים: <Table> עם ניווט במקלדת ומיון, <List> עם גלילה וירטואלית, ותרשימים המצוירים באמצעות תווי שמיניות בלוק ונקודות ברבעי תא.
טבלה עם מיון
העמודות הן מערך של אובייקטים. עמודה ללא width חולקת את השטח הנותר לפי grow, המיון משווה את value, ו-render מצייר את התא.
נוסף: import { Table, type SortState, type TableColumn } from "@textjs/app";נוסף: נוסף: const COLUMNS: TableColumn<Deployment>[] = [נוסף: { key: "status", header: "Status", width: 11, render: (d) => <Status status={d.status} /> },נוסף: { key: "commit", header: "Commit", grow: 2 },נוסף: { key: "project", header: "Project", width: 10 },נוסף: { key: "duration", header: "Build", width: 6, align: "right", value: (d) => d.duration, render: (d) => <Text>{`${d.duration}s`}</Text> },נוסף: ];export default function DeploymentsPage() {נוסף: const [sort, setSort] = useState<SortState | null>(null); …הוסר: return rows.map((d) => …);נוסף: return <Table columns={COLUMNS} rows={rows} getRowKey={(d) => d.id} sortable sort={sort} onSortChange={setSort} autoFocus />;}כשהמיקוד בטבלה, ↑ ↓ מזיזים את ההדגשה, s עובר בין עמודות המיון, S הופך את הכיוון ו-Enter קורא ל-onSelect. טבלאות ארוכות מציירות רק את השורות הגלויות.
תרשים מעל הטבלה
<Sparkline> ממלא את התיבה שלו בנקודות העדכניות ביותר. <BarChart> מיישר תוויות וערכים.
נוסף: import { BarChart, Sparkline } from "@textjs/app";נוסף: נוסף: const [chart, setChart] = useState<"spark" | "bars">("spark");נוסף: useInput((e) => {נוסף: if (e.input === "c") setChart((c) => (c === "spark" ? "bars" : "spark"));נוסף: });נוסף: return ( <Box className="flex-col grow gap-1">נוסף: <Box className="flex-col" height={4}>נוסף: <Text color="subtle">Build time, last 24 deployments</Text>נוסף: {chart === "spark" ? (נוסף: <Sparkline data={buildTimes} height={3} color="accent" />נוסף: ) : (נוסף: <BarChart data={byProject} formatValue={(v) => `${v}s`} />נוסף: )}נוסף: </Box> <Table … /> </Box> );לתיבת התרשים יש גובה קבוע, כך שהחלפת תרשימים לעולם אינה מזיזה את הטבלה, והשורות שלה אינן מקודדות מחדש.
רכיבים נוספים
<List>, <Tree>, <Tabs>, <Select>, <Input>, <Modal>, <Toaster>, <CommandPalette>, <ProgressBar>, <LineChart> ורכיבים נוספים מתועדים בסעיף רכיבים.
התנסות
זו Acme Deploys בסוף הפרק, רצה ב-DevTools. יש ללחוץ על המשטח, ואז להשתמש במקשים שלמטה.
פתיחת המסוף
האפליקציה מרונדרת ב-DevTools.תחילה יש להפעיל את "הצגת תכונות למפתחי אתרים" בהגדרות Safari → מתקדם. אחר כך ללחוץ כאן וללחוץ על s.
פתיחה במחשב
האפליקציה הזו מרונדרת במסוף של DevTools, שדורש דפדפן במחשב.
בוחן
2 שאלותלהשלמת הפרק, יש לענות על כל השאלות.