Storybook wrapper component invokes multiple imports

84 Views Asked by At

After migrating storybook to ^7 version, i have some issue with imports. click here to see.

So that invokes many imports and some of them, i guess, are not needed here. This problem happens not in all stories. So, how can we solve this problem, or it is just normal case? Can we move these imports to separate module and just import them in needed place?

here is my story

export default {
    title: 'Example/AddTags',
    component: AddTagsComponent,
    decorators: [
        moduleMetadata({
            imports: [TranslateModule.forRoot(), StoreModule.forRoot(), BrowserAnimationsModule, HttpClientModule],
            declarations: [AutocompleteDropdownComponent],
            providers: [
                { provide: 'windowObject', useValue: window },
                { provide: TranslateService, useClass: MockTranslateService },
                TagsService,
                PermissionCheckService,
                ResourceApiService,
                ApiClientService,
                TranslatorHelperService,
                TranslatorService,
                NgxPermissionsService,
                UserService,
                DynamicDialogService,
                ProjectsApiService,
                MessagesService,
                NzModalService,
                NzNotificationService,
                GroupsApiService,
                TasksApiService
            ]
        })
    ], 

and this is my component:

<div class="{{ styleClass }} w-full">
    <app-autocomplete-dropdown
        [selected]="selected"
        [results]="tags$$"
        (addNew)="createTag($event)"
        [isLoading]="isTranslating"
        (searchAction)="searchTags($event)"
        (selectItem)="whenSelect($event)"
        [multiple]="multiple"
        [addNewOptions]="addNewOptions"
        [delay]="delay"
        [lastSearch]="lastSearch"
        [dataKey]="dataKey"
        [size]="size"
        [serverSearch]="false"
        [maxItemCount]="maxItemCount"
        [placeholder]="placeholder"
        [noResults]="noResults"
        (whenFocus)="whenFocus.emit()"
        (whenBlur)="whenBlur.emit()"
        [showTranslatedName]="true"
        field="title"
        [selectedLanguage]="locale"
    ></app-autocomplete-dropdown>
</div>

and imports in it:


import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { NzSizeLDSType } from 'ng-zorro-antd/core/types';
import { TranslateService } from '@ngx-translate/core';
import { map, switchMap } from 'rxjs/operators';

import { TagType } from '@a-domains/core/types/Tag';
import { TagsService } from '@a-domains/tags/services/tags.service';
import { TranslatorHelperService } from '@a-domains/translator/services/translator-helper.service';
import { sortByTranslatedField } from '@a-domains/core/utils/sort';

@Component({
    selector: 'app-add-tags',
    templateUrl: './add-tags.component.html'
})
export class AddTagsComponent implements OnInit, OnDestroy { ...
0

There are 0 best solutions below