7.24.0
@comet/[email protected]
Patch Changes
- fc900f2: Support the
disabled
prop in theFinalFormRangeInput
@comet/[email protected]
Patch Changes
- fa61138: Don't show the
ClearInputAdornment
if theTimePicker
is disabled - fa61138: Support the
disabled
prop in theDateTimePicker
@comet/[email protected]
Patch Changes
- 24e046f: Data Grid: Fix styling of filter input fields
@comet/[email protected]
Patch Changes
- 7516163: Fix sticky behavior of
RteToolbar
@comet/[email protected]
Patch Changes
- 6d293de: Consider required permission of ancestors in
MasterMenuRoutes
@comet/[email protected]
Minor Changes
-
efeff64: API Generator: Allow easier extension of generated resolvers and services
Even though we don't encourage to extend generated resolvers and services, it should still be possible. Our recommendation is to generate a new resolver but there are cases where it makes sense to extend the existing one (e.g. modifying certain functions or reusing existing code).
Until now, this was hard to do, because every resolver and service declared it's services as private. If you need to use a service from the base resolver, you had to redeclare all services with a different name.
constructor( entityManager: EntityManager, @InjectRepository(Product) private readonly repository2: EntityRepository<Product>, @InjectRepository(ProductCategory) private readonly productCategoryRepository2: EntityRepository<ProductCategory>, @InjectRepository(Manufacturer) private readonly manufacturerRepository2: EntityRepository<Manufacturer>, @InjectRepository(FileUpload) private readonly fileUploadRepository2: EntityRepository<FileUpload>, @InjectRepository(ProductStatistics) private readonly productStatisticsRepository2: EntityRepository<ProductStatistics>, @InjectRepository(ProductColor) private readonly productColorRepository2: EntityRepository<ProductColor>, @InjectRepository(ProductToTag) private readonly productToTagRepository2: EntityRepository<ProductToTag>, @InjectRepository(ProductTag) private readonly productTagRepository2: EntityRepository<ProductTag>, private readonly blocksTransformer2: BlocksTransformerService, ) { super( entityManager, repository2, productCategoryRepository2, manufacturerRepository2, fileUploadRepository2, productStatisticsRepository2, productColorRepository2, productToTagRepository2, productTagRepository2, blocksTransformer2, ); }
If you tried to use the same name you got the following error:
Class 'CustomProductResolver' incorrectly extends base class 'ProductResolver'. Types have separate declarations of a private property 'repository'.ts(2415)
Now, the constructor can be omitted and the custom resolver can be simplified to:
@Resolver(() => Product) @RequiredPermission(["products"], { skipScopeCheck: true }) export class CustomProductResolver extends ProductResolver { @Mutation(() => Boolean) async publishAllProducts(): Promise<boolean> { await this.repository.nativeUpdate({ status: { $ne: ProductStatus.Published } }, { status: ProductStatus.Published }); return true; } }
Patch Changes
-
b6e3f7e: Don't replace a file if the new file is identical to the existing one in the DAM
This previously led to a bug where a file was deleted if it was replaced with the same file.
-
3607c7c: Extend the browser cache duration for public DAM assets from 1 day to 1 year to reduce the data load for returning users.
-
2310f85: Prevent socket exhaustion when streaming files and prevent the API from crashing due to stream errors in the
FileUploadsDownloadController
We already added this fix to the DAM in the past.
-
2af3d81: Ignore UUID columns in
searchToMikroOrmQuery
when inferring fields from entity metadata -
34df51d: Set cache-control headers for file uploads