<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: (Experience Builder) Can I pass custom props into widget from settings? in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/experience-builder-can-i-pass-custom-props-into/m-p/1373682#M83433</link>
    <description>&lt;P&gt;This works as intended and I finally understand how this works. Thank you so much for your help!&lt;/P&gt;</description>
    <pubDate>Tue, 23 Jan 2024 21:59:05 GMT</pubDate>
    <dc:creator>succip</dc:creator>
    <dc:date>2024-01-23T21:59:05Z</dc:date>
    <item>
      <title>(Experience Builder) Can I pass custom props into widget from settings?</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/experience-builder-can-i-pass-custom-props-into/m-p/1370577#M83347</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm hoping to build a series of customizable widgets. I like the idea of building them in experience builder and offering customizable options in experience builder's WYSIWYG editor.&lt;/P&gt;&lt;P&gt;As a training exercise, I'm trying to extend the&lt;A href="https://developers.arcgis.com/experience-builder/guide/get-map-coordinates/" target="_self"&gt; latitude/longitude example&lt;/A&gt; widget to offer a background colour changing option. Changing something like the map or dataset featured in a widget makes sense to me, but passing a custom prop like background colour seems more difficult.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this possible? I'll follow with my setting.tsx and widget.tsx.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help is greatly appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;setting.tsx&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;import { React, appActions, getAppStore } from "jimu-core";
import { AllWidgetSettingProps } from "jimu-for-builder";
import { MapWidgetSelector } from "jimu-ui/advanced/setting-components";
import { ColorPicker } from "jimu-ui/basic/color-picker";

const Setting = (props: AllWidgetSettingProps&amp;lt;any&amp;gt;) =&amp;gt; {
  const onMapWidgetSelected = (useMapWidgetIds: string[]) =&amp;gt; {
    props.onSettingChange({
      id: props.id,
      useMapWidgetIds,
    });
  };

  const onColorSelected = (newColor: string) =&amp;gt; {
    // do I pass the new colour here?
  };

  return (
    &amp;lt;div className="widget-setting-demo"&amp;gt;
      &amp;lt;MapWidgetSelector useMapWidgetIds={props.useMapWidgetIds} onSelect={onMapWidgetSelected} /&amp;gt;
      Background Color: &amp;lt;ColorPicker onChange={onColorSelected} /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;STRONG&gt;widget.tsx&lt;/STRONG&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;import { React, AllWidgetProps, IMState, ReactRedux, getAppStore } from "jimu-core";
import { JimuMapViewComponent, JimuMapView } from "jimu-arcgis";
import Point from "esri/geometry/Point";
const { useState } = React;
const { useSelector } = ReactRedux;

const Widget = (props: AllWidgetProps&amp;lt;any&amp;gt;) =&amp;gt; {
  const [latitude, setLatitude] = useState&amp;lt;string&amp;gt;("");
  const [longitude, setLongitude] = useState&amp;lt;string&amp;gt;("");

  const widgetState = useSelector((state: IMState) =&amp;gt; state);

  const activeViewChangeHandler = (jmv: JimuMapView) =&amp;gt; {
    if (jmv) {
      jmv.view.on("pointer-move", (evt) =&amp;gt; {
        const point: Point = jmv.view.toMap({
          x: evt.x,
          y: evt.y,
        });
        setLatitude(point.y.toFixed(3));
        setLongitude(point.x.toFixed(3));
      });
    }
  };

  return (
    &amp;lt;div className="widget-starter jimu-widget"&amp;gt;
      {props.useMapWidgetIds &amp;amp;&amp;amp; props.useMapWidgetIds.length === 1 &amp;amp;&amp;amp; (
        &amp;lt;JimuMapViewComponent
          useMapWidgetId={props.useMapWidgetIds?.[0]}
          onActiveViewChange={activeViewChangeHandler}
        /&amp;gt;
      )}
      &amp;lt;p&amp;gt;
        {/* I want to change background colour here VVVVVVV */}
        &amp;lt;div style={{ backgroundColor: "green" }}&amp;gt;
          Lat/Long: {latitude} {longitude}
        &amp;lt;/div&amp;gt;
      &amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
  );
};

export default Widget;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'd like the user to edit the backgroundColor using something like this:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="succip_0-1705425241266.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/91713i24AE78D2C1329565/image-size/medium?v=v2&amp;amp;px=400" role="button" title="succip_0-1705425241266.png" alt="succip_0-1705425241266.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jan 2024 17:39:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/experience-builder-can-i-pass-custom-props-into/m-p/1370577#M83347</guid>
      <dc:creator>succip</dc:creator>
      <dc:date>2024-01-16T17:39:37Z</dc:date>
    </item>
    <item>
      <title>Re: (Experience Builder) Can I pass custom props into widget from settings?</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/experience-builder-can-i-pass-custom-props-into/m-p/1372136#M83399</link>
      <description>&lt;P&gt;First of all, most of the widgets have a background property that users can set in the style panel:&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="RalucaNicola1_0-1705653579126.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/92147i6C8C9B63FCCFFEC5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="RalucaNicola1_0-1705653579126.png" alt="RalucaNicola1_0-1705653579126.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;But as I understand, you want to do this for your own learning. Not sure if it's the best way, but the way I did it for a widget I once built, was to have a backgroundColor property in &lt;A href="https://github.com/RalucaNicola/geo-gantt/blob/main/config.json#L5" target="_blank" rel="noopener"&gt;config.json&lt;/A&gt;. Then in the ColorPicker component I keep it in sync with the config property: &lt;A href="https://github.com/RalucaNicola/geo-gantt/blob/main/src/setting/setting.tsx#L172" target="_blank"&gt;see code&lt;/A&gt;. And onChange will update the property whenever the user changes it: &lt;A href="https://github.com/RalucaNicola/geo-gantt/blob/main/src/setting/setting.tsx#L57" target="_blank" rel="noopener"&gt;see code&lt;/A&gt;. We can access this property in the widget props (the &lt;A href="https://github.com/RalucaNicola/geo-gantt/blob/main/src/runtime/widget.tsx#L39" target="_blank" rel="noopener"&gt;config is set on the widget props)&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 19 Jan 2024 08:49:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/experience-builder-can-i-pass-custom-props-into/m-p/1372136#M83399</guid>
      <dc:creator>RalucaNicola1</dc:creator>
      <dc:date>2024-01-19T08:49:48Z</dc:date>
    </item>
    <item>
      <title>Re: (Experience Builder) Can I pass custom props into widget from settings?</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/experience-builder-can-i-pass-custom-props-into/m-p/1373682#M83433</link>
      <description>&lt;P&gt;This works as intended and I finally understand how this works. Thank you so much for your help!&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jan 2024 21:59:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/experience-builder-can-i-pass-custom-props-into/m-p/1373682#M83433</guid>
      <dc:creator>succip</dc:creator>
      <dc:date>2024-01-23T21:59:05Z</dc:date>
    </item>
  </channel>
</rss>

