forked from Tadrisino/MathApp_frontend
lighter first load, math reads left-to-right in quizzes, tickets from the server, readable separators
- Every screen but home is its own chunk and preloads when the browser is
idle; React and motion get their own long-cached chunks. The app entry
goes from 505 kB (160 kB gzip) to 85 kB (27 kB gzip).
- Quiz prompts, options and lesson examples go through MathText, so
'10 + 3 - 7 - 2' reads from the left; an unpaired bracket at the edge of
a math run stays with the Persian sentence.
- Support lists tickets from GET /support/tickets instead of this
browser's localStorage; a ticket's messages load when it is opened.
- '·' next to a Persian zero read as another digit ('فصلِ ۱ · ۰' looked
like ۱۰۰); a thin bar separates them now. Notification bodies show
Persian digits.
- A root or vertex the model already marked with coordinates is no longer
labelled a second time on top of it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -637,8 +637,12 @@ export function Plane({ spec: raw }: { spec: PlaneSpec }) {
|
||||
// بیش از چهار نقطه از یک نوع (ریشههای سینوس) فقط نقطه میگیرند، نه برچسب؛ وگرنه روی هم میافتند.
|
||||
const kindCount = new Map<string, number>();
|
||||
markPts.forEach((m) => kindCount.set(m.kind === 'max' || m.kind === 'min' ? 'ext' : m.kind, (kindCount.get(m.kind === 'max' || m.kind === 'min' ? 'ext' : m.kind) ?? 0) + 1));
|
||||
// اگر مدل خودش روی همان ریشه یا رأس نقطهی نامدار گذاشته، برچسبِ ما تکرار نشود
|
||||
const namedXY = [...named.values()];
|
||||
// اگر مدل خودش روی همان ریشه یا رأس نقطه گذاشته (نامدار یا با مختصات)، برچسبِ ما
|
||||
// تکرار نشود؛ وگرنه «(۳، ۰)» دو بار و روی هم نوشته میشد.
|
||||
const namedXY = [
|
||||
...named.values(),
|
||||
...spec.items.flatMap((it) => (it.type === 'point' && typeof it.point !== 'string' ? [it.point as XY] : [])),
|
||||
];
|
||||
for (const m of markPts) {
|
||||
if (namedXY.some((q) => Math.abs(q[0] - m.xy[0]) < 1e-3 && Math.abs(q[1] - m.xy[1]) < 1e-3)) continue;
|
||||
const [px, py] = P(m.xy);
|
||||
|
||||
Reference in New Issue
Block a user