# Renderer for directory/file browser

**URL:** <https://jsonforms.discourse.group/t/renderer-for-directory-file-browser/1262>\
**Category:** General\
**Created:** [January 24, 2023, 6:22pm UTC](https://jsonforms.discourse.group/t/renderer-for-directory-file-browser/1262 "2023-01-24T18:22:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![dcjarvisvt](https://yyz2.discourse-cdn.com/free1/user_avatar/jsonforms.discourse.group/dcjarvisvt/32/607_2.png) [@dcjarvisvt](https://jsonforms.discourse.group/u/dcjarvisvt)\
**Post date:** [January 24, 2023, 6:22pm UTC](https://jsonforms.discourse.group/t/renderer-for-directory-file-browser/1262/1 "2023-01-24T18:22:11Z")

</div>

I am looking for a native renderer to allow users to browse to a directory or a file on disk.  
I see this in other components like ([react-jsonschema-form playground](https://rjsf-team.github.io/react-jsonschema-form/)), using the “format”: “data-url”, but don’t see this in the JSONForms examples.

Any help would be appreciated.

---

<div class="post-metadata">

**Author:** ![sdirix](https://yyz2.discourse-cdn.com/free1/user_avatar/jsonforms.discourse.group/sdirix/32/1073_2.png) [@sdirix](https://jsonforms.discourse.group/u/sdirix)\
**Post date:** [January 25, 2023, 8:49am UTC](https://jsonforms.discourse.group/t/renderer-for-directory-file-browser/1262/2 "2023-01-25T08:49:34Z")

</div>

Hi @dcjarvisvt,

We don’t offer such a renderer out of the box. Note that `react-jsonschema-form` is another library and while it’s also a JSON Schema based form renderer it is a completely different solution and behaves differently.

In JSON Forms you need to add a custom renderer for this use case.

---

<div class="post-metadata">

**Author:** ![dcjarvisvt](https://yyz2.discourse-cdn.com/free1/user_avatar/jsonforms.discourse.group/dcjarvisvt/32/607_2.png) [@dcjarvisvt](https://jsonforms.discourse.group/u/dcjarvisvt)\
**Post date:** [January 25, 2023, 4:37pm UTC](https://jsonforms.discourse.group/t/renderer-for-directory-file-browser/1262/3 "2023-01-25T16:37:11Z")

</div>

Thanks @sdirix. Do you know if some of these extra renderers are on the roadmap so custom renderers don’t have to be implemented separately?

Is there a full list of renderers? I found this page, but there are many items like “password” and “email” that are used in the format/options, but not listed anywhere.

> **[Renderer sets - JSON Forms](https://jsonforms.io/docs/renderer-sets/)**
>
> Overview of all available renderer sets and which features they support

---

<div class="post-metadata">

**Author:** ![sdirix](https://yyz2.discourse-cdn.com/free1/user_avatar/jsonforms.discourse.group/sdirix/32/1073_2.png) [@sdirix](https://jsonforms.discourse.group/u/sdirix)\
**Post date:** [January 25, 2023, 4:49pm UTC](https://jsonforms.discourse.group/t/renderer-for-directory-file-browser/1262/4 "2023-01-25T16:49:08Z")

</div>

The linked renderer sets overview is currently the best one we have besides looking directly into the code. To check our planned tickets you can [inspect the milestones on Github](https://github.com/eclipsesource/jsonforms/milestones).

Note that in general we don’t support all possible use cases out of the box as there are so many different interpretations that we can never satisfy all of them. For example such a file renderer can be implemented in many different ways, e.g. storing a path in the data, storing the file encoded in `base64` in the data, uploading the file to a 3rd party service and presenting progress bar and/or id and state in the data etc. etc.

JSON Forms is designed to be easily extendable so implementing a custom renderer is not meant to be an escape hatch for the exceptional case, it’s rather a fundamental feature more or less intended to be used by most developers for their use cases.

What we want to cover with the off-the-shelf renderer sets are the basic use cases. _Ideally_ providing a solution for all JSON Schema features which are commonly in use. _In practice_ we cover all use cases which we need to solve in our own projects and/or are contributed by the community.
