0.3.1 • Published 2 years ago

@mcxbr/plugins v0.3.1

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

Plugins for PWA Studio

cssAsyncTransform

Transformação assíncrona de arquivos css

Adicionando ao projeto, tema ou módulo:

Adicionar o projeto as dependências

yarn add @mcxbr/plugins

Importar no targetables file do projeto

const { cssAsyncTransform } = require('@mcxbr/plugins');
var pjson = require('../package.json');

module.exports = (targetables, talonsTarget) => {
  const moduleName = pjson.name;

  /* async transform files */
  cssAsyncTransform(targetables, moduleName, 'customCustomer');
};

Deve-se seguir o path dos arquivos a serem mesclados

myLib/lib/components/ProductFullDetail/productFullDetail.css

Reescrita de class CSS

Adicionar selector css no arquivo para reescreve-lo por completo.

.root {
  max-width: 1000px;
}

Resultado:

.productFullDetail-root-xxx {
  max-width: 1000px;
}

Adicionar novos estilos mesclados aos originais

Adicionar css composes para herdar estilos do seletor:

.root {
  composes: root from '~@magento/venia-ui/lib/components/ProductFullDetail/productFullDetail.css';
  max-width: 1000px;
}

Resultado:

.productFullDetail-root-xxx {
  align-items: start;
  display: grid;
  grid-auto-flow: row;
  grid-template-areas:
    'images title'
    'images errors'
    'images options'
    'images quantity'
    'images cart'
    'images .';
  grid-template-columns: 1.5625fr 1fr;
  grid-template-rows: repeat(5, min-content) 1fr [fold];
  padding: 2.5rem 1rem;
  max-width: 1000px; // this new line
}

targetableAsyncTransform

Transformação de arquivos JS na execução do bundle

Fallback de targetables para modificações em arquivos do projeto. Conheça mais sobre Targetables nas docs do pwa-studio.

Adicionando ao projeto, tema ou módulo:

Adicionar o projeto as dependências

yarn add @mcxbr/plugins

Importar no targetables file do projeto

const { targetableAsyncTransform } = require('@mcxbr/plugins');
var pjson = require('../package.json');

module.exports = (targetables) => {
  const moduleName = pjson.name;

  /* async transform files */
  targetableAsyncTransform(targetables, moduleName);
};

Deve-se seguir o path dos arquivos a serem mesclados com sufixo .targetables.js

Exemplo para adicionar modificações no arquivo productFullDetail.js de @magento/venia-ui:

myLib/lib/components/ProductFullDetail/productFullDetail.targetables.js

Targetables

module.exports = component => {
  component.addImport(
    "import SpecialPrice from '@mcxbr/catalog/lib/components/SpecialPrice';"
  );
  component.insertAfterSource(
    '<p className={classes.productPrice}>',
    `
    \n
    {productDetails.specialPrice && (
      <SpecialPrice
        currencyCode={productDetails.price.currency}
        value={productDetails.specialPrice}
      />
    )}
    `
  );
}
0.3.1

2 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago