Skip to content

Commit

Permalink
Add accordion block (#108)
Browse files Browse the repository at this point in the history
  • Loading branch information
sneridagh authored Jun 29, 2023
1 parent c315842 commit 40fe4db
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 1 deletion.
1 change: 1 addition & 0 deletions news/108.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add accordion @sneridagh
11 changes: 11 additions & 0 deletions src/components/Blocks/Accordion/schema.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export function AccordionSchemaEnhancer({ schema, formData, intl }) {
// Opinionated removal of the options fieldset
schema.fieldsets = schema.fieldsets.filter((item) => item.id !== 'options');
// Some other opinionated defaults
schema.required = [];
schema.properties.right_arrows.default = true;
schema.properties.collapsed.default = false;
schema.properties.non_exclusive.default = false;

return schema;
}
1 change: 1 addition & 0 deletions src/components/Blocks/schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,6 @@ export const defaultStylingSchema = ({ schema, formData, intl }) => {
colors,
default: defaultBGColor,
};

return schema;
};
1 change: 1 addition & 0 deletions src/icons/block_icn_accordion.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 28 additions & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,12 @@ import Container from './components/Atoms/Container/Container';
import TopSideFacets from './components/Blocks/Search/TopSideFacets';

import GridListingBlockTemplate from './components/Blocks/Listing/GridTemplate';
import { ButtonStylingSchema } from './components/Blocks/Button/schema';

import { AccordionSchemaEnhancer } from './components/Blocks/Accordion/schema';

import gridSVG from './icons/block_icn_grid.svg';
import { ButtonStylingSchema } from './components/Blocks/Button/schema';
import accordionSVG from './icons/block_icn_accordion.svg';

const BG_COLORS = [
{ name: 'transparent', label: 'Transparent' },
Expand Down Expand Up @@ -119,6 +122,30 @@ const applyConfig = (config) => {
},
];

config.blocks.blocksConfig.accordion = {
...config.blocks.blocksConfig.accordion,
mostUsed: true,
icon: accordionSVG,
allowedBlocks: ['slate', 'teaser', 'image', 'listing', 'slateTable'],
colors: BG_COLORS,
schemaEnhancer: composeSchema(
AccordionSchemaEnhancer,
defaultStylingSchema,
),
sidebarTab: 1,
};

config.blocks.blocksConfig.accordion.blocksConfig = {
...config.blocks.blocksConfig,
teaser: {
...config.blocks.blocksConfig.teaser,
schemaEnhancer: composeSchema(
gridTeaserDisableStylingSchema,
teaserSchemaEnhancer,
),
},
};

config.blocks.blocksConfig.__grid = {
...config.blocks.blocksConfig.__grid,
colors: BG_COLORS,
Expand Down
10 changes: 10 additions & 0 deletions src/theme/_layout.scss
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,16 @@ body.has-toolbar.has-sidebar .block .ui.basic.button.delete-button {
margin-right: -30px !important;
}

#page-add,
#page-edit {
.block-editor-accordion {
[class*='block-editor-'] {
margin-right: 0;
margin-left: 0;
}
}
}

.contenttype-file {
a {
text-decoration: underline;
Expand Down
4 changes: 4 additions & 0 deletions src/theme/blocks/_accordion.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Adjust in case the grid add-on is still in place.
.block.accordion [data-rbd-draggable-context-id] {
margin-bottom: 2rem;
}
1 change: 1 addition & 0 deletions src/theme/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
@import 'content';
@import 'footer';

@import 'blocks/accordion';
@import 'blocks/image';
@import 'blocks/introduction';
@import 'blocks/slider';
Expand Down

0 comments on commit 40fe4db

Please sign in to comment.