New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@great-expectations/jsonforms-antd-renderers

Package Overview
Dependencies
Maintainers
0
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@great-expectations/jsonforms-antd-renderers

ant design renderer set for the jsonforms declarative form framework

  • 1.22.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
172
increased by6.17%
Maintainers
0
Weekly downloads
 
Created
Source

codecov

Ant Design Renderers for jsonforms

jsonforms is "a declarative framework for efficiently building form-based web UIs." jsonforms has multiple renderer packages for different frameworks and component libraries, and this is one such package. You can preview the renderers via storybook here.

Getting started

npm install @great-expectations/jsonforms-antd-renderers

Using AntD Renderers

In order to use this package you need to import the renderer registry entries from this package and provide them to the @jsonforms/react JsonForms component:

import { JsonForms } from "@jsonforms/react"
import {
  rendererRegistryEntries,
  cellRegistryEntries,
} from "@great-expectations/jsonforms-antd-renderers"

function MyForm({ data }: { data: Record<string, unknown> }) {
  return (
    <JsonForms
      data={data}
      schema={schema}
      renderers={rendererRegistryEntries}
      cells={cellRegistryEntries}
    />
  )
}

Writing UISchemas

This package expands upon the types and configurability of jsonforms UISchemas. When writing UISchemas, you'll want to provide your jsonschema's type to our UISchema type to take advantage of advanced typechecking & UI configurability. See our storybooks (instructions for running storybooks under Contributing) for more examples.

import { useState } from "react"
import { Form, Button } from "antd"
import { JsonForms } from "@jsonforms/react"
import {
  rendererRegistryEntries,
  UISchema,
} from "@great-expectations/jsonforms-antd-renderers"

const schema = {
  type: "object",
  properties: { password: { type: "string" } },
} as const
// Be sure to use an `as const` assertion so that UISchema
// can see the specific types of `type` fields within a schema.
// i.e. without `as const`, the value "object" is interpreted
// as a string type, and not the string literal type "object"

const uischema: UISchema<typeof schema> = {
  type: "VerticalLayout",
  elements: [
    {
      type: "Control",
      scope: "#/properties/password",
      // Properties like type: "password" here are unique to this renderer package.
      // This allows you more declarative control over how your forms render.
      // In this case, the password field will be rendered with AntD's password input component.
      options: { type: "password" },
    },
  ],
}

function MyForm() {
  const [data, setData] = useState<Record<string, unknown>>({})

  return (
    <Form onFinish={() => myApiCall(data)}>
      <JsonForms
        data={data}
        onChange={(result) => setData(result.data as Record<string, unknown>)}
        schema={schema}
        uischema={uischema}
        renderers={rendererRegistryEntries}
      />
      <Form.Item>
        <Button htmlType="submit">Submit</Button>
      </Form.Item>
    </Form>
  )
}

Contributing

First time setup

  • Install node.js (only Node v20 is currently supported)
  • Install the version of pnpm specified in the packageManager field in package.json
  • Clone this repository
  • Install dependencies: pnpm i --frozen-lockfile
  • Run tests: pnpm test
  • Run tests and view coverage:
    • pnpm test:cov
    • npx vite preview --outDir html
    • in the terminal, type o + enter to open the results in a browser
  • Run storybook: pnpm storybook

Making changes

  • Make changes to the code
  • Run tests: pnpm test
  • Run storybook: pnpm storybook
  • Run format: pnpm format:write
  • Run lint: pnpm lint
  • Commit your changes

Conventional commits

Testing the package locally

  • Create an installable tarball file from this directory: pnpm pack
  • If you previously installed the package, you may need to remove it first: npm uninstall @great-expectations/jsonforms-antd-renderers and possibly clear your package manager's cache
  • Install the package in your project: npm install /path/to/jsonforms-antd-renderers-0.0.0-semantic-release.tgz

Keywords

FAQs

Package last updated on 10 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc