Skip to content

Commit e151d9d

Browse files
authored
Merge pull request #441 from aldabil21/resource-tab-bug
Split selected tab from selectedResource
2 parents 96c1164 + 4a4f168 commit e151d9d

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

src/lib/components/common/WithResources.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ const WithResources = ({ renderChildren }: WithResourcesProps) => {
5555
};
5656

5757
const ResourcesTabTables = ({ renderChildren }: WithResourcesProps) => {
58-
const { resources, resourceFields, selectedResource, handleState, onResourceChange } = useStore();
58+
const { resources, resourceFields, selectedTab, handleState, onResourceChange } = useStore();
5959

6060
const tabs: ButtonTabProps[] = resources.map((res) => {
6161
return {
@@ -66,7 +66,7 @@ const ResourcesTabTables = ({ renderChildren }: WithResourcesProps) => {
6666
});
6767

6868
const setTab = (tab: DefaultResource["assignee"]) => {
69-
handleState(tab, "selectedResource");
69+
handleState(tab, "selectedTab");
7070
if (typeof onResourceChange === "function") {
7171
const selected = resources.find((re) => re[resourceFields.idField] === tab);
7272
if (selected) {
@@ -77,17 +77,18 @@ const ResourcesTabTables = ({ renderChildren }: WithResourcesProps) => {
7777

7878
const currentTabSafeId = useMemo(() => {
7979
const firstId = resources[0][resourceFields.idField];
80-
if (!selectedResource) {
80+
if (!selectedTab) {
8181
return firstId;
8282
}
83+
8384
// Make sure current selected id is within the resources array
84-
const idx = resources.findIndex((re) => re[resourceFields.idField] === selectedResource);
85+
const idx = resources.findIndex((re) => re[resourceFields.idField] === selectedTab);
8586
if (idx < 0) {
8687
return firstId;
8788
}
8889

89-
return selectedResource;
90-
}, [resources, selectedResource, resourceFields.idField]);
90+
return selectedTab;
91+
}, [resources, resourceFields.idField, selectedTab]);
9192

9293
return (
9394
<ButtonTabs tabs={tabs} tab={currentTabSafeId} setTab={setTab} style={{ display: "grid" }} />

src/lib/store/provider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ export const StoreProvider = ({ children, initial }: Props) => {
5757
end: new Date(Date.now() + 60 * 60 * 1000),
5858
},
5959
selectedEvent: isEvent?.event_id ? isEvent : undefined,
60-
selectedResource: prev.selectedResource || isEvent?.[state.resourceFields?.idField],
60+
selectedResource: isEvent?.[state.resourceFields?.idField],
6161
}));
6262
};
6363

src/lib/store/types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ export interface SchedulerState extends SchedulerProps {
88
dialog: boolean;
99
selectedRange?: SelectedRange;
1010
selectedEvent?: ProcessedEvent;
11-
selectedResource?: DefaultResource["assignee"];
11+
selectedResource?: DefaultResource["assignee"] | DefaultResource["assignee"][];
12+
selectedTab?: DefaultResource["assignee"];
1213
currentDragged?: ProcessedEvent;
1314
enableAgenda?: boolean;
1415
}

0 commit comments

Comments
 (0)