v3.12.2 v3.12.3
v3.12.1
v3.12.0
RichText
component has a customFieldPlainText
prop (true by default). If set to false, values are not transformed to plain text when saving to a custom field.v3.11.4
v3.11.3
v3.11.0 v3.11.1 v3.11.2
Image
component can be set as readonly
with a source
: in this way you can use the Image component also for images that should not be visually editable (for example the images of a posts list component that gets images from the posts' pages).v3.10.0
fetchPriority
to high.Text
and RichText
the renderBlock
and placeholder
props are not required any more (by default a simple paragraph is rendered and the placeholder is "Type a text...").TextValue
type is exported to allow correct typing of (rich)text propsv3.9.1 and v3.9.2
getExternalDataArgs
in the fetchPage
function, to pass arguments to the getExternalData
function (useful if you have data that depend on path params and not on the page - like variants of a product in an e-commerce)alt
and seoName
introduced in 3.9.0Link
typing_blank
v3.9.0
For enterprise plans, ability to set fine-grained permissions on a user/page/language/brick level providing the canAddPage
, canAddTranslation
, canSeePageType
, canSeePage
, canEditPage
, canDeletePage
, canDeleteTranslation
, canUseBrick
in the permission
object of the React Bricks configuration.
See the Permissions documentation.
Ability to create custom roles from the Dashboard and to assign them to users for use in the permissions functions.
It is now possible to have a story created in the bricks code appear as a brick in the "Add new" menu, using the showAsBrick
flag.
See the Stories documentation.
Bricks can be specified as a structured array (themes > categories > bricks), so that the order of categories can be preserved and it is not necessary to specify the theme
and category
for every brick. The config structure overrides the theme and category of the single bricks.
See Configuration, Theme, Category
It is now possible to specify the getDefaultProps
function for each repeaterItem
to override the defaults of the item for a repeater.
See Repeated Items documentation
Ability to set a custom placeholder
for each <Image>
component.
See the Image documentation.
getOption
function now receives all the props as an argument.Link
ability to specify the simpleAnchor
attribute to avoid the local link renderer (SPA router) even for local paths.Link
componentgetDefaultProps
hideFromAddMenu
= true are hiddengetDefaultProps
onesv3.8.10
When we have important announcements to share, it will be possible to see them in Admin.
Better featureFlags
management.
v3.8.9
Now it's possible to prevent content edit (inline and via sidebar controls) for locked blocks (enterprise feature). Of course it's possible to prevent it also on default content blocks using the canEditContent
flag on the the block default content.
v3.8.8
imageClassName
introduced in v3.8.7.v3.8.7
aspectRatio
(if set), respecting the maxSize
(if set).v3.8.5 v3.8.6
key
warning for Repeatersv3.8.4
v3.8.3
Ability to have a theme
on the bricks, with theme selection in the "Add new" interface
enablePreviewIcon
configuration key (if there is an icon, it is shown)v3.8.2
v3.8.1
Fixed blocking bug (missing dependency in production bundle)
v3.8.0
You can now lock single blocks in a page, instead of an entire page.
See Locked structure
For a pageType, you can now specify the default content in multiple ways.
The array of blocks can contain, for each block:
IContentBlock
(block content with every prop and lock status)See Page Types
You can now add stories for a brick in code, adding a stories
array to the brick's schema. This is useful when you want to document stories that are part of your design system style guide. The editors will see both the schema stories and the ones created by them. While user-created stories can be deleted, stories that are part of the brick's schema in code cannot be deleted, as they are part of the design system definition.
See Brick's schema
ReactBricksContext
, that you can reach via the useReactBricksContext
hook. See useReactBricksContext.v3.7.0
You can now embed pages/entities inside of another page, so that it is a single source of truth: anytime the embedded page is changed, the change is reflected in all the pages embedding it. See Page / Entity embed
helpText
that is rendered below the control.clickToEditSide
to "NONE", or having a PageViewer
with showClickToEdit
set to false.v3.6.1
v3.6.0
You can now search for images on Unsplash. See Unsplash integration.
You can configure your own Unsplash API Key using the unsplashApiKey
configuration parameter, otherwise you will have just 20 searches per hour per app.
Of course, you can disable the feature via the enableUnsplash
configuration flag.
v3.5.1
shouldRefreshStyles
flag on a sideEditProp
, when the value change for this prop could cause an injection of new CSS styles by a CSS-in-JS library. This ensures the new styles are correctly loaded.v3.5.0
You can have any level of nesting using the <Repeater>
component.
See Nested blocks
A <Repeater>
can have multiple types of repeated blocks. See Repeater Items
You can set an image and an icon for each brick, so that users can select them visually from the "add new" menu. See Bricks schema
cssInJs
flag on the configuration)...rest
spread on the main element of a repeated itemIt is really suggested that you don't spread ...rest
any more on repeated items and that you remove those spreads from your codebase: leaving them could cause browser warnings for unknown attributes on DOM elements (because now on the rest
you have all the props of the block, not just the sidebar props, which probably you already extract before the rest).
If you are destructuring props that have the same name as a prop that now comes from a visual editing component (for example an image), the prop on the ...rest
could override the other props.
v3.4.3
featuredImage
for back-compatibilityv3.4.2
v3.4.1
v3.4.0
Big milestone: now you have real-time presence of all the users connected to an App and page-level lock, with possibility to force the unlock of a page.
v3.3.2
If you set the new blockIconsPosition
property on the React Bricks configuration to types.BlockIconsPosition.OutsideBlock
, the small icons for "add new block", "delete block", "duplicate block", "move up", "move down" will be rendered outside of the block (useful for example when you have a short block)
v3.3.1
RichText
: the softLineBreak
attribute was not available for the RichText even if implemented. Now it is in the TypeScript interface and it works as expectedimageOptions
for a sideEditProp or a custom field: maxWidth
is optionalrelationshipOptions
for a sideEditProp or a custom field: label
is optionalfilterBy
in fetchPages or usePages: better typingsv3.3.0
useWebP
flag (true
by default).sizes
for size art direction.useNativeLazyLoading
flag (true
by default). You may also provide the loading
prop to override the default lazy
and set it to eager
(not recommended, generally it would hurt performance).containerClassName
, containerStyle
and noWrapper
are deprecated. Now by default no wrapper is rendered (it is still rendered only if you are applying the old containerClassName and containerStyle).renderWrapper
function instead of the props above. The renderWrapper
function receives width and height as arguments, so that you can calulate the image aspect ratio.getAdminMenu
function, which receives the isAdmin
argument and should return an array of objects with label
and path
. If path is external, it will render an anchor tag, while if it is a local path, it will use the router navigation.This features make easier to work with React Bricks as a sort of headless CMS, but where you can still edit the entity data in a visual way.
Text
, RichText
and Image
components can now be bound to page meta fields (like title, description, language, image) or custom fields, using the metaFieldName
or customFieldName
(instead of the usual propName
). The fields from the sidebar and the one edited visually have 2-way data bounding.isEntity
property on pageType
: if you create page type with isEntity
set to true
, you will see a new tab menu on the left to choose between Pages and Entities. Entities are just pages for React Bricks, but they could not correspond to real pages in your frontend. In this way you don't confuse your editors. For example you could have in Entities things like Categories or Menu Items.relationship
with relationshipOptions
(to specify the referenced pageType
, the label and a multiple
flag to have a many-to-many relationship).filter
option to fetch pages based on custom fields' value.pageType
you can define an array of categoriesv3.2.29
v3.2.28
v3.2.27
v3.2.26
v3.2.25
IImageSource
: width and height are no more mandatoryv3.2.24
v3.2.21 - v3.2.23
PageViewer
for React 18 compatiblity.renderItalic
.v3.2.19 - v3.2.20
v3.2.17 - v3.2.18
RichText
.enablePreview
true by default in ReactBricksConfig.v3.2.14
v3.2.12 - v3.2.13
v3.2.11
noWrapper
prop to the Image component to avoid the wrapping div
.RichText
toolbar always inside the brick space.aspectRatio
to the Image control in Side Edit Props.false
instead of null
.v3.2.10
getDefaultProps
no more mandatory in the schema
.RichText
toolbar always inside the rich text space.v3.2.8 - v3.2.9
v3.2.6 - v3.2.7
useVisualEdit
to frontend bundle.blockPluginConstructor
, markPluginConstructor
and plugins to frontend bundle.v3.2.5
simpleFetchTags
and useTags
.v3.2.4
index
prop to items
in Repeater
(in order to conditionally render based on index)newItemMenuOpen
in brick's schema
.v3.2.1 - v3.2.3
v3.2.0
v3.1.2 - v3.1.9
v3.1.1
File
component that allows editors to upload files that may be downloaded by users on the frontend.v3.0.1
v3.0.0
Image
component, so that the crop will be limited to that aspect ratio.category
to each brick and an array of tags
. Bricks are organized by category and searchable by name or tag. You can also add a link to external documentation for each Brick, which is shown in the Playground.RichText
component now by default supports also Heading H1..H6 and Quote.RichTextExt
component, which is an extensible RichText with a plugins system. Underneath the RichText component (kept for compatibility) uses the new RichTextExt.shouldRefreshText
isn't needed any more on sideEditProps which affect the style of (Rich)Texts.<div></div>
around the renderBlock.translations
array isn't an array of language strings anymore, but an array of objects with language
and slug
.If you need to migrate from v2 to v3, please read Upgrade v2 > v3.
Be the first to discover our latest news. No spam, promise.