mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-04-14 16:40:58 -04:00
* Initial factoring out of parts of the LayerUI component 2360 → 2224 LOC * Create a Section component * Break up src/index.tsx * Refactor actions to reduce duplication, fix CSS Also consolidate icons * Move scene/data.ts to its own directory * Fix accidental reverts, banish further single-character variables * ACTIVE_ELEM_COLOR → ACTIVE_ELEMENT_COLOR * Further refactoring the icons file * Log all errors * Pointer Event polyfill to make the tests work * add test hooks & fix tests Co-authored-by: dwelle <luzar.david@gmail.com>
27 lines
666 B
TypeScript
27 lines
666 B
TypeScript
import React from "react";
|
|
import { t } from "../i18n";
|
|
|
|
interface SectionProps extends React.HTMLProps<HTMLElement> {
|
|
heading: string;
|
|
children: React.ReactNode | ((header: React.ReactNode) => React.ReactNode);
|
|
}
|
|
|
|
export function Section({ heading, children, ...props }: SectionProps) {
|
|
const header = (
|
|
<h2 className="visually-hidden" id={`${heading}-title`}>
|
|
{t(`headings.${heading}`)}
|
|
</h2>
|
|
);
|
|
return (
|
|
<section {...props} aria-labelledby={`${heading}-title`}>
|
|
{typeof children === "function" ? (
|
|
children(header)
|
|
) : (
|
|
<>
|
|
{header}
|
|
{children}
|
|
</>
|
|
)}
|
|
</section>
|
|
);
|
|
}
|