Skip to content

Commit

Permalink
feat(helpers): export helpers css classes (#582)
Browse files Browse the repository at this point in the history
  • Loading branch information
mdanilowicz committed Feb 15, 2024
1 parent d4e6812 commit 97b5949
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 3 deletions.
5 changes: 5 additions & 0 deletions .changeset/tall-mice-pump.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@shopware-pwa/helpers-next": minor
---

Export css classes as a separate file
24 changes: 24 additions & 0 deletions packages/helpers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,30 @@ For getting started documentation visit [https://frontends.shopware.com/](https:

Documentation specific for this package: [helpers](https://frontends.shopware.com/packages/helpers.html)

## Reusable classes

The `helpersCssClasses` variable, defined in the `cms/layoutClasses.ts` helper file, comprises an array of class names utilized within the CMS.

To enhance type support, a union type `HelpersCssClasses` is defined, which encompasses all class names present in the `helpersCssClasses` array.

```ts
const visibilityMap: Record<CmsVisibility, HelpersCssClasses> = {
mobile: "max-md:hidden",
tablet: "md:max-lg:hidden",
desktop: "lg:hidden",
};
```

These classes can be integrated into a custom template, thereby ensuring consistency across different packages. For example as a `safelist` classes in unocss configuration file

```ts
import { helpersCssClasses } from "@shopware-pwa/helpers-next";

export default defineConfig({
safelist: helpersCssClasses,
});
```

<!-- AUTO GENERATED CHANGELOG -->

## Changelog
Expand Down
6 changes: 4 additions & 2 deletions packages/helpers/src/cms/getCmsLayoutConfiguration.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import type { HelpersCssClasses } from "./layoutClasses";

// CmsBlock make as a generic type
type GenericCms = {
visibility?: {
Expand Down Expand Up @@ -60,8 +62,8 @@ export function _getVisibilityClasses(
return visibilityCssClasses;
}

const visibilityMap: Record<CmsVisibility, string> = {
mobile: "max-md:hidden", // TODO: #549 - create exported helper classes to be included in safelist
const visibilityMap: Record<CmsVisibility, HelpersCssClasses> = {
mobile: "max-md:hidden",
tablet: "md:max-lg:hidden",
desktop: "lg:hidden",
};
Expand Down
1 change: 1 addition & 0 deletions packages/helpers/src/cms/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export { getCmsLayoutConfiguration } from "./getCmsLayoutConfiguration";
export type { LayoutConfiguration } from "./getCmsLayoutConfiguration";
export * from "./getBackgroundImageUrl";
export * from "./buildUrlPrefix";
export * from "./layoutClasses";

/**
* Returns the main page object depending of the type of the CMS page.
Expand Down
6 changes: 6 additions & 0 deletions packages/helpers/src/cms/layoutClasses.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export const helpersCssClasses = [
"max-md:hidden",
"md:max-lg:hidden",
"lg:hidden",
];
export type HelpersCssClasses = (typeof helpersCssClasses)[number];
5 changes: 5 additions & 0 deletions packages/helpers/src/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ describe("helpers - test global API", () => {
"getSmallestThumbnailUrl": [Function],
"getSrcSetForMedia": [Function],
"getTranslatedProperty": [Function],
"helpersCssClasses": [
"max-md:hidden",
"md:max-lg:hidden",
"lg:hidden",
],
"isCategory": [Function],
"isLandingPage": [Function],
"isProduct": [Function],
Expand Down
3 changes: 2 additions & 1 deletion templates/vue-demo-store/uno.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
presetUno,
} from "unocss";
import transformerDirectives from "@unocss/transformer-directives";
import { helpersCssClasses } from "@shopware-pwa/helpers-next";

export default defineConfig({
theme: {
Expand Down Expand Up @@ -113,5 +114,5 @@ export default defineConfig({
`,
},
],
safelist: ["max-md:hidden", "md:max-lg:hidden", "lg:hidden"],
safelist: helpersCssClasses,
});

0 comments on commit 97b5949

Please sign in to comment.