Skip to content

Commit 3a33422

Browse files
authored
Merge pull request #2389 from tf/inline-editing-css
Exclude inline editing CSS from public bundle
2 parents a16c457 + f15385f commit 3a33422

4 files changed

Lines changed: 54 additions & 4 deletions

File tree

entry_types/scrolled/app/helpers/pageflow_scrolled/packs_helper.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,17 @@ def scrolled_frontend_javascript_packs_tag(entry, options)
1010

1111
def scrolled_frontend_stylesheet_packs_tag(entry, options)
1212
stylesheet_pack_tag(
13-
*scrolled_frontend_packs(entry, **options),
13+
*scrolled_frontend_stylesheet_packs(entry, **options),
1414
media: 'all'
1515
)
1616
end
1717

18+
def scrolled_frontend_stylesheet_packs(entry, entry_mode:)
19+
packs = scrolled_frontend_packs(entry, entry_mode: entry_mode)
20+
packs += ['pageflow-scrolled-frontend-inlineEditing'] if entry_mode == :editor
21+
packs
22+
end
23+
1824
def scrolled_editor_javascript_packs_tag(entry)
1925
javascript_pack_tag(
2026
*scrolled_editor_packs(entry),

entry_types/scrolled/package/config/webpack.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ module.exports = {
7878
'pageflow-scrolled/widgets/iconScrollIndicator',
7979
'pageflow-scrolled/widgets/iconScrollIndicator.css'
8080
]
81+
},
82+
'pageflow-scrolled-frontend-inlineEditing': {
83+
import: ['pageflow-scrolled/frontend/inlineEditing.css']
8184
}
8285
}
8386
};

entry_types/scrolled/spec/helpers/pageflow_scrolled/packs_helper_spec.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,33 @@ module PageflowScrolled
243243
end
244244
end
245245

246+
describe 'scrolled_frontend_stylesheet_packs' do
247+
it 'includes core frontend pack' do
248+
entry = create(:published_entry, type_name: 'scrolled')
249+
250+
result = helper.scrolled_frontend_stylesheet_packs(entry,
251+
entry_mode: :published)
252+
253+
expect(result).to include('pageflow-scrolled-frontend')
254+
end
255+
256+
it 'includes inline editing stylesheet pack only in editor mode' do
257+
entry = create(:published_entry, type_name: 'scrolled')
258+
259+
expect(
260+
helper.scrolled_frontend_stylesheet_packs(entry, entry_mode: :editor)
261+
).to include('pageflow-scrolled-frontend-inlineEditing')
262+
263+
expect(
264+
helper.scrolled_frontend_stylesheet_packs(entry, entry_mode: :preview)
265+
).not_to include('pageflow-scrolled-frontend-inlineEditing')
266+
267+
expect(
268+
helper.scrolled_frontend_stylesheet_packs(entry, entry_mode: :published)
269+
).not_to include('pageflow-scrolled-frontend-inlineEditing')
270+
end
271+
end
272+
246273
describe 'scrolled_editor_packs' do
247274
it 'includes editor pack' do
248275
entry = create(:published_entry, type_name: 'scrolled')

rollup.config.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,21 @@ function external(id) {
4242
return !['.', '/', '$'].includes(id[0]);
4343
}
4444

45-
const plugins = ({extractCss, moduleDirectories} = {}) => [
45+
const plugins = ({extractCss, splitCss, moduleDirectories} = {}) => [
4646
postcss({
4747
modules: true,
4848
extract: extractCss,
49-
minimize: extractCss
49+
minimize: extractCss,
50+
...(splitCss && {exclude: Object.keys(splitCss)})
5051
}),
52+
...Object.entries(splitCss || {}).map(([include, output]) =>
53+
postcss({
54+
modules: true,
55+
extract: output,
56+
minimize: true,
57+
include: [include]
58+
})
59+
),
5160
babel({
5261
exclude: 'node_modules/**',
5362
extensions: ['js', 'jsx', 'svg'],
@@ -264,7 +273,12 @@ const pageflowScrolled = [
264273
format: 'esm',
265274
},
266275
external,
267-
plugins: plugins({extractCss: true}),
276+
plugins: plugins({
277+
extractCss: true,
278+
splitCss: {
279+
'**/inlineEditing/**': pageflowScrolledPackageRoot + '/frontend/inlineEditing.css'
280+
}
281+
}),
268282
...ignoreJSXWarning
269283
},
270284
{

0 commit comments

Comments
 (0)