Skip to content

Commit 59f46c8

Browse files
author
Francesco Novy
authored
Merge pull request #241 from fabscale/fn/add-grid-no-grow
feat: Add `@noGrow` option to grid to have exact grid column widths
2 parents 1397948 + 3bc50ba commit 59f46c8

9 files changed

Lines changed: 491 additions & 42 deletions

File tree

‎.github/dependabot.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ updates:
77
open-pull-requests-limit: 15
88
assignees:
99
- mydea
10+
labels:
11+
- dependencies
12+
- internal
1013
commit-message:
1114
prefix: chore
1215
prefix-development: chore

‎.release-it.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
"plugins": {
66
"release-it-lerna-changelog": {
77
"infile": "CHANGELOG.md"
8-
},
9-
"release-it-yarn-workspaces": {}
8+
}
109
},
1110
"git": {
1211
"tagName": "v${version}"

‎addon/components/layout/grid.hbs‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<div
2-
class="layout-grid"
2+
class={{
3+
layout-join-classes 'layout-grid' (if @noGrow 'layout-grid--no-grow')
4+
}}
35
style={{layout-css-var grid-gap-size=@gapSize grid-size=@gridSize}}
46
...attributes
57
>
68
{{yield (component 'layout/grid/item')}}
7-
</div>
9+
</div>

‎addon/styles/addon.css‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,10 @@
189189
grid-template-columns: repeat(auto-fit, minmax(var(--grid-size), 1fr));
190190
}
191191

192+
.layout-grid--no-grow {
193+
grid-template-columns: repeat(auto-fill, var(--grid-size));
194+
}
195+
192196
.layout-grid-item {
193197
min-width: 0;
194198
}

‎package.json‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"@glimmer/tracking": "~1.0.4",
4141
"babel-eslint": "~10.1.0",
4242
"broccoli-asset-rev": "~3.0.0",
43+
"ember-auto-import": "~2.0.1",
4344
"ember-cli": "~3.26.1",
4445
"ember-cli-dependency-checker": "~3.2.0",
4546
"ember-cli-inject-live-reload": "~2.0.2",
@@ -53,7 +54,7 @@
5354
"ember-prism": "~0.9.0",
5455
"ember-qunit": "~5.1.4",
5556
"ember-resolver": "~8.0.2",
56-
"ember-source": "~3.27.2",
57+
"ember-source": "~3.27.3",
5758
"ember-source-channel-url": "~3.0.0",
5859
"ember-template-lint": "~3.4.1",
5960
"ember-try": "~1.4.0",
@@ -69,7 +70,8 @@
6970
"qunit": "~2.15.0",
7071
"qunit-dom": "~1.6.0",
7172
"release-it": "~14.7.0",
72-
"release-it-lerna-changelog": "~3.1.0"
73+
"release-it-lerna-changelog": "~3.1.0",
74+
"webpack": "~5.38.1"
7375
},
7476
"engines": {
7577
"node": "10.* || >= 12"

‎tests/dummy/app/controllers/grid.js‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
import Controller from '@ember/controller';
2+
import { tracked } from '@glimmer/tracking';
3+
import { action } from '@ember/object';
24

35
export default class GridController extends Controller {
6+
@tracked gridNoGrow;
7+
8+
@action
9+
updateProperty(property, value) {
10+
this[property] = value;
11+
}
12+
413
gridCode = `<Layout::Grid as |Item|>
514
<Item>First item</Item>
615
<Item>Second item</Item>

‎tests/dummy/app/templates/grid.hbs‎

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,20 @@
4646

4747
<Layout::Stack as |StackItem|>
4848
<StackItem>
49-
<p>
50-
There are no configuration options for the grid.
51-
</p>
49+
<Layout::Cluster @fullWidthOnMobile={{true}} as |Item|>
50+
<Item>
51+
<ConfigOption
52+
@label='@noGrow'
53+
@value={{this.gridNoGrow}}
54+
@onChange={{fn this.updateProperty 'gridNoGrow'}}
55+
@options={{array true}}
56+
/>
57+
</Item>
58+
</Layout::Cluster>
5259
</StackItem>
5360

5461
<StackItem>
55-
<Layout::Grid as |Item|>
62+
<Layout::Grid @noGrow={{this.gridNoGrow}} as |Item|>
5663
<Item>
5764
<DemoItem />
5865
</Item>

‎tests/integration/components/layout/grid-test.js‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { module, test } from 'qunit';
22
import { setupRenderingTest } from 'ember-qunit';
33
import { render } from '@ember/test-helpers';
44
import { hbs } from 'ember-cli-htmlbars';
5+
import settled from '@ember/test-helpers/settled';
56

67
module('Integration | Component | layout/grid', function (hooks) {
78
setupRenderingTest(hooks);
@@ -43,6 +44,20 @@ module('Integration | Component | layout/grid', function (hooks) {
4344
.hasAttribute('style', '--grid-gap-size: 123px; --grid-size: 45px');
4445
});
4546

47+
test('it allows to specify @noGrow', async function (assert) {
48+
await render(hbs`
49+
<Layout::Grid @noGrow={{this.noGrow}}>
50+
</Layout::Grid>
51+
`);
52+
53+
assert.dom('.layout-grid').doesNotHaveClass('layout-grid--no-grow');
54+
55+
this.set('noGrow', true);
56+
await settled();
57+
58+
assert.dom('.layout-grid').hasClass('layout-grid--no-grow');
59+
});
60+
4661
test('it allows to set @fullWidth on items', async function (assert) {
4762
await render(hbs`
4863
<Layout::Grid as |Item|>

0 commit comments

Comments
 (0)