Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/helpers/reactjs_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def get_webpack_foreman_vendor_js
end

def get_webpack_foreman_vendor_css
foreman_vendor_css = get_webpack_chunk('foreman-vendor', 'css')
foreman_vendor_css = get_webpack_chunk('vendorStyles', 'css')
stylesheet_link_tag("/webpack/#{foreman_vendor_css}")
end

Expand Down
16 changes: 15 additions & 1 deletion config/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const { ModuleFederationPlugin } = require('webpack').container;
var pluginUtils = require('../script/plugin_webpack_directories');
var { generateExportsFile }= require('../webpack/assets/javascripts/exportAll');
var CompressionPlugin = require('compression-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

class AddRuntimeRequirement {
// to avoid "webpackRequire.l is not a function" error
Expand Down Expand Up @@ -166,7 +167,8 @@ const coreConfig = function() {
__dirname,
'..',
'webpack/assets/javascripts/all_react_app_exports.js'
),
),
Comment thread
MariaAga marked this conversation as resolved.
Outdated
vendorStyles: path.join(__dirname, '..', 'webpack/assets/javascripts/react_app/common/scss/vendor-core.scss'),
};
config.output = {
path: path.join(__dirname, '..', 'public', 'webpack'),
Expand All @@ -189,10 +191,14 @@ const coreConfig = function() {
filename: manifestFilename,
})
);
plugins.push(
new MiniCssExtractPlugin()
);
config.plugins = plugins;
var rules = config.module.rules;
rules.push({
test: /\.(sa|sc|c)ss$/,
exclude: /vendor-core/i,
use: [
{
loader: 'style-loader',
Expand All @@ -205,6 +211,14 @@ const coreConfig = function() {
'sass-loader',
],
});
rules.push({
test: /vendor-core/i,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
'sass-loader',
],
});
config.module.rules = rules;
return config;
};
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
"jest-svg-transformer": "^1.0.0",
"jest-transform-graphql": "^2.1.0",
"jsx-ast-utils": "^3.3.3",
"mini-css-extract-plugin": "^2.9.1",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need to be packaged.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"path-browserify": "^1.0.1",
"prettier": "^1.19.1",
"pretty-format": "26.6.2",
Expand Down
1 change: 1 addition & 0 deletions webpack/assets/javascripts/exportAll.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ function generateExports(directoryPath, exportFileContent = '') {
!dirent.name.endsWith('.test.js') &&
!dirent.name.endsWith('.fixtures.js') &&
!dirent.name.endsWith('mockRequests.js') &&
!dirent.name.endsWith('vendor-core.scss') &&
!fileNameWithoutExtension.includes('TestHelper') &&
!fileNameWithoutExtension.includes('testHelper') &&
!fileNameWithoutExtension.includes('APITestSetup')
Expand Down
21 changes: 21 additions & 0 deletions webpack/assets/javascripts/react_app/common/scss/mixins.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Mixins - Bootstrap overrides
// -------------------
@mixin box-shadow($shadow...) {
-webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
box-shadow: $shadow;
}

// Form control outline
@mixin form-control-outline($color: $input-border-focus){
$color-rgba: rgba(red($color), green($color), blue($color), .6);
&:focus {
border-color: $color;
outline: 0 !important;
@include box-shadow(unquote("inset 0 1px 1px rgba(3, 3, 3, 0.075), 0 0 8px #{$color-rgba}"));
}
}
/**
Third Party mixins imports here
*/
@import '~patternfly/dist/sass/patternfly/bootstrap-mixin-overrides';
@import '~patternfly/dist/sass/patternfly/mixins';
21 changes: 21 additions & 0 deletions webpack/assets/javascripts/react_app/common/scss/vendor-core.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/**
Third Party libraries imports here
*/
@import '../variables';
@import './mixins';

@import '~multiselect/css/multi-select.css';
@import '~react-diff-view/style/index.css';
@import '~select2/src/scss/core.scss';
@import "~dsmorse-gridster/dist/jquery.gridster";
@import "~datatables.net-bs/css/dataTables.bootstrap.css";
@import "~@redhat-cloud-services/frontend-components/index.css";

// patternfly v3
@import '~patternfly-react/dist/sass/_patternfly-react.scss';
@import '~patternfly-react-extensions/dist/sass/_select.scss';
@import '~patternfly/dist/sass/patternfly/_loading-state';

// patternfly v5
@import '~@patternfly/patternfly/patternfly';
@import '~@patternfly/patternfly/patternfly-addons';
21 changes: 19 additions & 2 deletions webpack/assets/javascripts/react_app/common/variables.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
@import '~@theforeman/vendor/scss/variables.scss';
/**
Third Party variables imports here
*/
// patternfly v3
$font-path: '~patternfly/dist/fonts/';
$img-path: '~patternfly/dist/img/';
$icon-font-path: '~patternfly/dist/fonts/';
@import '~bootstrap-sass/assets/stylesheets/bootstrap/variables';
@import '~patternfly/dist/sass/patternfly/variables';

$header-max-width: calc(#{$pf-v5-global--breakpoint--lg} + 70px); //TODO move into @theforeman/vendor/scss/variables
// patternfly v5
@import '~@patternfly/patternfly/base/patternfly-variables';
Comment thread
MariaAga marked this conversation as resolved.
Outdated
$pf-v5-global--font-path: '~@patternfly/patternfly/assets/fonts';
$fa-font-path: '~@patternfly/patternfly/assets/fonts/webfonts';
$pf-v5-global--fonticon-path: '~@patternfly/patternfly/assets/pficon';
$pf-v5-global--image-path: '~@patternfly/patternfly/assets/images';
$pf-prefix: 'pf-v5-';
$button: #{$pf-prefix + 'c-button'};

$header-max-width: calc(#{$pf-v5-global--breakpoint--lg} + 70px);
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import "~@theforeman/vendor/scss/variables";
@import "../../../../common/variables";

@keyframes blink {
0% {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '~@theforeman/vendor/scss/variables';
@import '../../../../common/variables';

.pf-v5-c-masthead .pf-v5-c-toolbar {
.pf-v5-c-context-selector__menu-search {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../../common/variables.scss';
@import '../../../../common/variables';

#data-toolbar {
background-color: unset;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@import '../../common/colors.scss';
@import '../../common/variables.scss';
@import '../../common/variables';

.react-page #foreman-main-container {
overflow-x: auto;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '~@theforeman/vendor/scss/variables';
@import '../../../common/variables';

.bookmarks-dropdown-item {
word-break: break-word;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import "~@theforeman/vendor/scss/variables";
@import '../../common/variables';
@import '../../common/colors.scss';

.ReactPasswordStrength {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '~@theforeman/vendor/scss/variables';
@import '../../common/variables';

.autocomplete-search {
width: 100%;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import "~@theforeman/vendor/scss/variables";
@import "../../../../common/variables";

$screen-md: 992px !default;
$screen-md-min: $screen-md !default;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
@import "~@theforeman/vendor/scss/variables";
@import "~@theforeman/vendor/scss/mixins";
@import "../../../common/variables";
@import "../../../common/scss/mixins";

.foreman-numeric-input {
position: relative;
Expand Down