+
+
+
+
({
+ id: d.id,
+ name: d.name,
+ description: d.description,
+ tags: d.tags,
+ author: d.author,
+ }))}
+ searchKeys={["name", "author", "tags"]}
+ selectedItem={params.pluginId || null}
+ setSelectedItem={id => navigate(`/config/${id}`)}
+ renderItem={c => (
+
+
+ {c.name}
+
+ {c.author}
+
+
+
e.stopPropagation()}
+ >
+
+
+
+ )}
+ />
+
+
+ setError(false)}
+ onBlur={(e: React.FocusEvent) => {
+ const target = e.target as HTMLInputElement;
+ plugin && target.value
+ ? setName({
+ variables: {id: plugin.id, name: target.value},
+ })
+ : setError(true);
+ }}
+ />
+ setError(false)}
+ onBlur={(e: React.FocusEvent) => {
+ const target = e.target as HTMLInputElement;
+ plugin && target.value
+ ? setDescription({
+ variables: {id: plugin.id, description: target.value},
+ })
+ : setError(true);
+ }}
+ />
+ {
+ if (plugin?.tags.includes(tag) || !plugin) return;
+ setTags({
+ variables: {id: plugin.id, tags: plugin.tags.concat(tag)},
+ });
+ }}
+ onRemove={tag => {
+ if (!plugin) return;
+ setTags({
+ variables: {
+ id: plugin.id,
+ tags: plugin.tags.filter(t => t !== tag),
+ },
+ });
+ }}
+ />
+
+
+
+
+