Skip to content

Commit

Permalink
refactor welcome components
Browse files Browse the repository at this point in the history
  • Loading branch information
villebro committed Jan 6, 2023
1 parent 318529e commit e317744
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ describe('ActivityTable', () => {
activityData: mockData,
setActiveChild: jest.fn(),
user: { userId: '1' },
doneFetching: true,
isFetchingActivityData: false,
};

let wrapper: ReactWrapper;
Expand Down Expand Up @@ -127,7 +127,7 @@ describe('ActivityTable', () => {
activityData: {},
setActiveChild: jest.fn(),
user: { userId: '1' },
doneFetching: true,
isFetchingActivityData: false,
};
const wrapper = mount(
<Provider store={store}>
Expand Down
27 changes: 12 additions & 15 deletions superset-frontend/src/views/CRUD/welcome/ActivityTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ interface ActivityProps {
activeChild: string;
setActiveChild: (arg0: string) => void;
activityData: ActivityData;
doneFetching: boolean;
isFetchingActivityData: boolean;
}

const Styles = styled.div`
Expand Down Expand Up @@ -128,22 +128,21 @@ export default function ActivityTable({
setActiveChild,
activityData,
user,
doneFetching,
isFetchingActivityData,
}: ActivityProps) {
const [editedObjs, setEditedObjs] = useState<Array<ActivityData>>();
const [loadingState, setLoadingState] = useState(false);
const [editedCards, setEditedCards] = useState<ActivityData[]>();
const [isFetchingEditedCards, setIsFetchingEditedCards] = useState(false);

const getEditedCards = () => {
setLoadingState(true);
setIsFetchingEditedCards(true);
getEditedObjects(user.userId).then(r => {
setEditedObjs([...r.editedChart, ...r.editedDash]);
setLoadingState(false);
setEditedCards([...r.editedChart, ...r.editedDash]);
setIsFetchingEditedCards(false);
});
};

useEffect(() => {
if (activeChild === TableTab.Edited) {
setLoadingState(true);
getEditedCards();
}
}, [activeChild]);
Expand Down Expand Up @@ -178,9 +177,9 @@ export default function ActivityTable({
});
}
const renderActivity = () =>
(activeChild !== TableTab.Edited
? activityData[activeChild]
: editedObjs
(activeChild === TableTab.Edited
? editedCards
: activityData[activeChild]
).map((entity: ActivityObject) => {
const url = getEntityUrl(entity);
const lastActionOn = getEntityLastActionOn(entity);
Expand All @@ -200,16 +199,14 @@ export default function ActivityTable({
);
});

if ((loadingState && !editedObjs) || !doneFetching) {
if ((isFetchingEditedCards && !editedCards) || isFetchingActivityData) {
return <LoadingCards />;
}
return (
<Styles>
<SubMenu activeChild={activeChild} tabs={tabs} />
{activityData[activeChild]?.length > 0 ||
(activeChild === TableTab.Edited &&
editedObjs &&
editedObjs.length > 0) ? (
(activeChild === TableTab.Edited && editedCards?.length) ? (
<CardContainer className="recentCards">
{renderActivity()}
</CardContainer>
Expand Down
71 changes: 37 additions & 34 deletions superset-frontend/src/views/CRUD/welcome/Welcome.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,7 @@ function Welcome({ user, addDangerToast }: WelcomeProps) {
const [dashboardData, setDashboardData] = useState<Array<object> | null>(
null,
);
const [loadedCount, setLoadedCount] = useState(0);
const doneFetching = loadedCount === (canAccessSqlLab ? 3 : 2);
const [isFetchingActivityData, setIsFetchingActivityData] = useState(true);

const collapseState = getItem(LocalStorageKeys.homepage_collapse_state, []);
const [activeState, setActiveState] = useState<Array<string>>(collapseState);
Expand Down Expand Up @@ -263,42 +262,46 @@ function Welcome({ user, addDangerToast }: WelcomeProps) {
value: `${id}`,
},
];
getUserOwnedObjects(id, 'dashboard')
.then(r => {
setDashboardData(r);
setLoadedCount(loadedCount => loadedCount + 1);
})
.catch((err: unknown) => {
setDashboardData([]);
setLoadedCount(loadedCount => loadedCount + 1);
addDangerToast(
t('There was an issue fetching your dashboards: %s', err),
);
});
getUserOwnedObjects(id, 'chart')
.then(r => {
setChartData(r);
setLoadedCount(loadedCount => loadedCount + 1);
})
.catch((err: unknown) => {
setChartData([]);
setLoadedCount(loadedCount => loadedCount + 1);
addDangerToast(t('There was an issue fetching your chart: %s', err));
});
if (canAccessSqlLab) {
getUserOwnedObjects(id, 'saved_query', ownSavedQueryFilters)
Promise.all([
getUserOwnedObjects(id, 'dashboard')
.then(r => {
setQueryData(r);
setLoadedCount(loadedCount => loadedCount + 1);
setDashboardData(r);
return Promise.resolve();
})
.catch((err: unknown) => {
setQueryData([]);
setLoadedCount(loadedCount => loadedCount + 1);
setDashboardData([]);
addDangerToast(
t('There was an issue fetching your saved queries: %s', err),
t('There was an issue fetching your dashboards: %s', err),
);
});
}
return Promise.resolve();
}),
getUserOwnedObjects(id, 'chart')
.then(r => {
setChartData(r);
return Promise.resolve();
})
.catch((err: unknown) => {
setChartData([]);
addDangerToast(t('There was an issue fetching your chart: %s', err));
return Promise.resolve();
}),
canAccessSqlLab
? getUserOwnedObjects(id, 'saved_query', ownSavedQueryFilters)
.then(r => {
setQueryData(r);
return Promise.resolve();
})
.catch((err: unknown) => {
setQueryData([]);
addDangerToast(
t('There was an issue fetching your saved queries: %s', err),
);
return Promise.resolve();
})
: Promise.resolve(),
]).then(() => {
setIsFetchingActivityData(false);
});
}, [otherTabFilters]);

const handleToggle = () => {
Expand Down Expand Up @@ -362,7 +365,7 @@ function Welcome({ user, addDangerToast }: WelcomeProps) {
activeChild={activeChild}
setActiveChild={setActiveChild}
activityData={activityData}
doneFetching={doneFetching}
isFetchingActivityData={isFetchingActivityData}
/>
) : (
<LoadingCards />
Expand Down

0 comments on commit e317744

Please sign in to comment.