Skip to content

Commit afd89aa

Browse files
committed
Feature: Add for single dimensions
1 parent e5bdcdb commit afd89aa

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

packages/neos-ui/src/Containers/PrimaryToolbar/DimensionSwitcher/DimensionSelectorOption.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export default class DimensionSelectorOption extends PureComponent {
2525
<SelectBox_Option_SingleLine
2626
{...this.props}
2727
className={className}
28-
label={option.label}
28+
label={'DInge'+ option.label}
2929
/>
3030
);
3131
}

packages/neos-ui/src/Containers/PrimaryToolbar/DimensionSwitcher/index.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export default class DimensionSwitcher extends PureComponent {
5050
allowedPresets: PropTypes.object.isRequired,
5151
selectPreset: PropTypes.func.isRequired,
5252
getNodeByContextPath: PropTypes.func.isRequired,
53-
documentNode: PropTypes.string.isRequired,
53+
documentNode: PropTypes.object.isRequired,
5454
setAllowed: PropTypes.func.isRequired,
5555

5656
i18nRegistry: PropTypes.object.isRequired
@@ -159,6 +159,16 @@ export default class DimensionSwitcher extends PureComponent {
159159
this.setState({isOpen: false});
160160
}
161161

162+
createDirectDimensionsLink = (dimensionName, presetConfigurationValues ) => {
163+
const {documentNode} = this.props;
164+
165+
const nodeContextPath = documentNode.properties._path + ';' + dimensionName + '=' + presetConfigurationValues.join(',')
166+
const uri = new URL(window.location.href);
167+
uri.searchParams.set('node', nodeContextPath);
168+
//console.log(uri.toString());
169+
return uri.toString();
170+
}
171+
162172
renderSingleDimensionSelector = (dimensionName, contentDimensionsObject) => {
163173
const dimensionConfiguration = contentDimensionsObject[dimensionName];
164174
const icon = this.getDimensionIcon(dimensionName, contentDimensionsObject);
@@ -259,18 +269,16 @@ export default class DimensionSwitcher extends PureComponent {
259269
return null;
260270
}
261271
getDocumentDimensions(dimensionName) {
262-
const {getNodeByContextPath, documentNode, allowedPresets} = this.props;
272+
const {getNodeByContextPath, documentNode, allowedPresets, activePresets} = this.props;
263273
const currentDocumentNode = getNodeByContextPath(documentNode.contextPath)
264-
265274
if(!currentDocumentNode.dimensions) return allowedPresets[dimensionName]
266275

267276
let variants = currentDocumentNode?.otherNodeVariants;
268277
let dimensions = [currentDocumentNode.dimensions[dimensionName]];
269278

270279
Object.values(variants).forEach(entry => {
271-
if(entry[dimensionName]) dimensions.push(entry[dimensionName]);
280+
dimensions.push(entry[dimensionName]);
272281
});
273-
274282
return dimensions;
275283
}
276284

@@ -284,7 +292,8 @@ export default class DimensionSwitcher extends PureComponent {
284292
return Object.assign({}, presetConfiguration, {
285293
label: i18nRegistry.translate(presetConfiguration.label),
286294
disallowed: !(allowedPresets[dimensionName] && allowedPresets[dimensionName].includes(presetName)),
287-
existing: (documentDimensions.some(dimension=> presetConfiguration.values.includes(dimension))),
295+
existing: documentDimensions.some(dimension=> presetConfiguration.values.includes(dimension)),
296+
uri: this.createDirectDimensionsLink( dimensionName, presetConfiguration.values)
288297
});
289298
});
290299
}

packages/neos-ui/src/Containers/PrimaryToolbar/DimensionSwitcher/style.module.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
opacity: 0.5;
6565
}
6666
.disallowed {
67-
background-color: var(--colors-ContrastBright);
67+
text-decoration: line-through;
6868
}
6969

7070
.selectPreset + .selectPreset {

0 commit comments

Comments
 (0)