mirror of
https://github.com/maputnik/editor.git
synced 2025-12-07 14:50:02 +00:00
1. Changed references to point to this new repo 2. Fixed docker image publishing to point to ghcr.io. 3. Remove survey link - the survey is closed and there's no point in keeping it. 4. Remove storybook - Basically a storybook is the ability to look at components and see how they look and interact with them. It's a powerful tool for developing component library with "live" documentation. But it's an overkill for this project and I would like to reduce maintenance costs. Currently all the "stories" are in javascript and not in typescript and it feels like a waste of time to try and maintain it, along with updating the storybook library itself and everything around it.
91 lines
2.4 KiB
TypeScript
91 lines
2.4 KiB
TypeScript
import React from 'react'
|
|
|
|
const headers = {
|
|
js: "JS",
|
|
android: "Android",
|
|
ios: "iOS",
|
|
macos: "macOS",
|
|
};
|
|
|
|
type DocProps = {
|
|
fieldSpec: {
|
|
doc?: string
|
|
values?: {
|
|
[key: string]: {
|
|
doc?: string
|
|
}
|
|
}
|
|
'sdk-support'?: {
|
|
[key: string]: typeof headers
|
|
}
|
|
}
|
|
};
|
|
|
|
export default class Doc extends React.Component<DocProps> {
|
|
render () {
|
|
const {fieldSpec} = this.props;
|
|
|
|
const {doc, values} = fieldSpec;
|
|
const sdkSupport = fieldSpec['sdk-support'];
|
|
|
|
const renderValues = (
|
|
!!values &&
|
|
// HACK: Currently we merge additional values into the style spec, so this is required
|
|
// See <https://github.com/maplibre/maputnik/blob/main/src/components/PropertyGroup.jsx#L16>
|
|
!Array.isArray(values)
|
|
);
|
|
|
|
return (
|
|
<>
|
|
{doc &&
|
|
<div className="SpecDoc">
|
|
<div className="SpecDoc__doc" data-wd-key='spec-field-doc'>{doc}</div>
|
|
{renderValues &&
|
|
<ul className="SpecDoc__values">
|
|
{Object.entries(values).map(([key, value]) => {
|
|
return (
|
|
<li key={key}>
|
|
<code>{JSON.stringify(key)}</code>
|
|
<div>{value.doc}</div>
|
|
</li>
|
|
);
|
|
})}
|
|
</ul>
|
|
}
|
|
</div>
|
|
}
|
|
{sdkSupport &&
|
|
<div className="SpecDoc__sdk-support">
|
|
<table className="SpecDoc__sdk-support__table">
|
|
<thead>
|
|
<tr>
|
|
<th></th>
|
|
{Object.values(headers).map(header => {
|
|
return <th key={header}>{header}</th>;
|
|
})}
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{Object.entries(sdkSupport).map(([key, supportObj]) => {
|
|
return (
|
|
<tr key={key}>
|
|
<td>{key}</td>
|
|
{Object.keys(headers).map((k) => {
|
|
if (Object.prototype.hasOwnProperty.call(supportObj, k)) {
|
|
return <td key={k}>{supportObj[k as keyof typeof headers]}</td>;
|
|
}
|
|
else {
|
|
return <td key={k}>no</td>;
|
|
}
|
|
})}
|
|
</tr>
|
|
);
|
|
})}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
}
|
|
</>
|
|
);
|
|
}
|
|
} |