mirror of
https://github.com/utopia-os/utopia-ui.git
synced 2025-12-13 07:46:10 +00:00
allow unlisted layers
This commit is contained in:
parent
ddcb4469b2
commit
871e853340
@ -45,6 +45,7 @@ export const Layer = ({
|
|||||||
customEditLink,
|
customEditLink,
|
||||||
customEditParameter,
|
customEditParameter,
|
||||||
public_edit_items,
|
public_edit_items,
|
||||||
|
listed = true,
|
||||||
setItemFormPopup,
|
setItemFormPopup,
|
||||||
itemFormPopup,
|
itemFormPopup,
|
||||||
clusterRef
|
clusterRef
|
||||||
@ -83,8 +84,8 @@ export const Layer = ({
|
|||||||
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
data && setItemsData({ data, children, name, menuIcon, menuText, menuColor, markerIcon, markerShape, markerDefaultColor, markerDefaultColor2, api, itemType, itemNameField, itemSubnameField, itemTextField, itemAvatarField, itemColorField, itemOwnerField, itemTagsField, itemOffersField, itemNeedsField, onlyOnePerOwner, customEditLink, customEditParameter, public_edit_items, setItemFormPopup, itemFormPopup, clusterRef });
|
data && setItemsData({ data, children, name, menuIcon, menuText, menuColor, markerIcon, markerShape, markerDefaultColor, markerDefaultColor2, api, itemType, itemNameField, itemSubnameField, itemTextField, itemAvatarField, itemColorField, itemOwnerField, itemTagsField, itemOffersField, itemNeedsField, onlyOnePerOwner, customEditLink, customEditParameter, public_edit_items, listed, setItemFormPopup, itemFormPopup, clusterRef });
|
||||||
api && setItemsApi({ data, children, name, menuIcon, menuText, menuColor, markerIcon, markerShape, markerDefaultColor, markerDefaultColor2, api, itemType, itemNameField, itemSubnameField, itemTextField, itemAvatarField, itemColorField, itemOwnerField, itemTagsField, itemOffersField, itemNeedsField, onlyOnePerOwner, customEditLink, customEditParameter, public_edit_items, setItemFormPopup, itemFormPopup, clusterRef });
|
api && setItemsApi({ data, children, name, menuIcon, menuText, menuColor, markerIcon, markerShape, markerDefaultColor, markerDefaultColor2, api, itemType, itemNameField, itemSubnameField, itemTextField, itemAvatarField, itemColorField, itemOwnerField, itemTagsField, itemOffersField, itemNeedsField, onlyOnePerOwner, customEditLink, customEditParameter, public_edit_items, listed, setItemFormPopup, itemFormPopup, clusterRef });
|
||||||
}, [data, api])
|
}, [data, api])
|
||||||
|
|
||||||
useMapEvents({
|
useMapEvents({
|
||||||
|
|||||||
@ -11,7 +11,7 @@ export default function AddButton({ triggerAction }: { triggerAction: React.Disp
|
|||||||
const canAddItems = () => {
|
const canAddItems = () => {
|
||||||
let canAdd = false;
|
let canAdd = false;
|
||||||
layers.map(layer => {
|
layers.map(layer => {
|
||||||
if (layer.api?.createItem && hasUserPermission(layer.api.collectionName!, "create", undefined, layer)) canAdd = true;
|
if (layer.api?.createItem && hasUserPermission(layer.api.collectionName!, "create", undefined, layer) && layer.listed) canAdd = true;
|
||||||
})
|
})
|
||||||
return canAdd;
|
return canAdd;
|
||||||
}
|
}
|
||||||
@ -28,7 +28,7 @@ export default function AddButton({ triggerAction }: { triggerAction: React.Disp
|
|||||||
</label>
|
</label>
|
||||||
<ul tabIndex={0} className="tw-dropdown-content tw-pr-1 tw-list-none">
|
<ul tabIndex={0} className="tw-dropdown-content tw-pr-1 tw-list-none">
|
||||||
{layers.map((layer) => (
|
{layers.map((layer) => (
|
||||||
layer.api?.createItem && hasUserPermission(layer.api.collectionName!, "create", undefined, layer) && (
|
layer.api?.createItem && hasUserPermission(layer.api.collectionName!, "create", undefined, layer) && layer.listed &&(
|
||||||
<li key={layer.name} >
|
<li key={layer.name} >
|
||||||
<a>
|
<a>
|
||||||
<div className="tw-tooltip tw-tooltip-left" data-tip={layer.menuText}>
|
<div className="tw-tooltip tw-tooltip-left" data-tip={layer.menuText}>
|
||||||
|
|||||||
@ -43,7 +43,7 @@ export function FilterControl() {
|
|||||||
<div className="tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer" onClick={() => {
|
<div className="tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer" onClick={() => {
|
||||||
setOpen(true)
|
setOpen(true)
|
||||||
}}>
|
}}>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" strokeWidth={2} stroke="currentColor" className="size-6">
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" strokeWidth={2.3} stroke="currentColor" className="size-6">
|
||||||
<path strokeLinecap="round" strokeLinejoin="round" d="M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z" />
|
<path strokeLinecap="round" strokeLinejoin="round" d="M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z" />
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -10,6 +10,8 @@ export function LayerControl() {
|
|||||||
|
|
||||||
const layers = useLayers();
|
const layers = useLayers();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const isLayerVisible = useIsLayerVisible();
|
const isLayerVisible = useIsLayerVisible();
|
||||||
const toggleVisibleLayer = useToggleVisibleLayer();
|
const toggleVisibleLayer = useToggleVisibleLayer();
|
||||||
const addVisibleLayer = useAddVisibleLayer();
|
const addVisibleLayer = useAddVisibleLayer();
|
||||||
@ -26,7 +28,7 @@ export function LayerControl() {
|
|||||||
<ul className='tw-flex-row'>
|
<ul className='tw-flex-row'>
|
||||||
{
|
{
|
||||||
layers.map(layer =>
|
layers.map(layer =>
|
||||||
<li key={layer.name}><label htmlFor={layer.name} className="tw-label tw-justify-normal tw-pt-1 tw-pb-1"><input id={layer.name} onChange={() => toggleVisibleLayer(layer)} type="checkbox" className="tw-checkbox tw-checkbox-xs tw-checkbox-success" checked={isLayerVisible(layer)} /><span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{layer.name}</span></label></li>
|
(layer.listed && <li key={layer.name}><label htmlFor={layer.name} className="tw-label tw-justify-normal tw-pt-1 tw-pb-1"><input id={layer.name} onChange={() => toggleVisibleLayer(layer)} type="checkbox" className="tw-checkbox tw-checkbox-xs tw-checkbox-success" checked={isLayerVisible(layer)} /><span className='tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer'>{layer.name}</span></label></li>)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@ -40,7 +40,8 @@ export interface LayerProps {
|
|||||||
onlyOnePerOwner?: boolean,
|
onlyOnePerOwner?: boolean,
|
||||||
customEditLink?: string,
|
customEditLink?: string,
|
||||||
customEditParameter?: string,
|
customEditParameter?: string,
|
||||||
public_edit_items?: boolean
|
public_edit_items?: boolean,
|
||||||
|
listed?: boolean,
|
||||||
setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,
|
setItemFormPopup?: React.Dispatch<React.SetStateAction<ItemFormPopupProps | null>>,
|
||||||
itemFormPopup?: ItemFormPopupProps | null,
|
itemFormPopup?: ItemFormPopupProps | null,
|
||||||
clusterRef?: any
|
clusterRef?: any
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user