(storeType?: T)
| 86 | }; |
| 87 | |
| 88 | export const useIssues = <T extends EIssuesStoreType>(storeType?: T): TStoreIssues[T] => { |
| 89 | const context = useContext(StoreContext); |
| 90 | if (context === undefined) throw new Error("useIssues must be used within StoreProvider"); |
| 91 | |
| 92 | const defaultStore: defaultIssueStore = { |
| 93 | issueMap: context.issue.issues.issuesMap, |
| 94 | }; |
| 95 | |
| 96 | switch (storeType) { |
| 97 | case EIssuesStoreType.GLOBAL: |
| 98 | return merge(defaultStore, { |
| 99 | issues: context.issue.workspaceIssues, |
| 100 | issuesFilter: context.issue.workspaceIssuesFilter, |
| 101 | }) as TStoreIssues[T]; |
| 102 | case EIssuesStoreType.WORKSPACE_DRAFT: |
| 103 | return merge(defaultStore, { |
| 104 | issues: context.issue.workspaceDraftIssues, |
| 105 | issuesFilter: context.issue.workspaceDraftIssuesFilter, |
| 106 | }) as TStoreIssues[T]; |
| 107 | case EIssuesStoreType.PROFILE: |
| 108 | return merge(defaultStore, { |
| 109 | issues: context.issue.profileIssues, |
| 110 | issuesFilter: context.issue.profileIssuesFilter, |
| 111 | }) as TStoreIssues[T]; |
| 112 | case EIssuesStoreType.TEAM: |
| 113 | return merge(defaultStore, { |
| 114 | issues: context.issue.teamIssues, |
| 115 | issuesFilter: context.issue.teamIssuesFilter, |
| 116 | }) as TStoreIssues[T]; |
| 117 | case EIssuesStoreType.PROJECT: |
| 118 | return merge(defaultStore, { |
| 119 | issues: context.issue.projectIssues, |
| 120 | issuesFilter: context.issue.projectIssuesFilter, |
| 121 | }) as TStoreIssues[T]; |
| 122 | case EIssuesStoreType.CYCLE: |
| 123 | return merge(defaultStore, { |
| 124 | issues: context.issue.cycleIssues, |
| 125 | issuesFilter: context.issue.cycleIssuesFilter, |
| 126 | }) as TStoreIssues[T]; |
| 127 | case EIssuesStoreType.MODULE: |
| 128 | return merge(defaultStore, { |
| 129 | issues: context.issue.moduleIssues, |
| 130 | issuesFilter: context.issue.moduleIssuesFilter, |
| 131 | }) as TStoreIssues[T]; |
| 132 | case EIssuesStoreType.TEAM_VIEW: |
| 133 | return merge(defaultStore, { |
| 134 | issues: context.issue.teamViewIssues, |
| 135 | issuesFilter: context.issue.teamViewIssuesFilter, |
| 136 | }) as TStoreIssues[T]; |
| 137 | case EIssuesStoreType.PROJECT_VIEW: |
| 138 | return merge(defaultStore, { |
| 139 | issues: context.issue.projectViewIssues, |
| 140 | issuesFilter: context.issue.projectViewIssuesFilter, |
| 141 | }) as TStoreIssues[T]; |
| 142 | case EIssuesStoreType.ARCHIVED: |
| 143 | return merge(defaultStore, { |
| 144 | issues: context.issue.archivedIssues, |
| 145 | issuesFilter: context.issue.archivedIssuesFilter, |
no outgoing calls
no test coverage detected