diff --git a/packages/backend/src/models/step.ts b/packages/backend/src/models/step.ts
index 57ec44e4..a231066e 100644
--- a/packages/backend/src/models/step.ts
+++ b/packages/backend/src/models/step.ts
@@ -73,6 +73,8 @@ class Step extends Base {
});
get iconUrl() {
+ if (!this.appKey) return null;
+
return `${appConfig.baseUrl}/apps/${this.appKey}/assets/favicon.svg`;
}
diff --git a/packages/types/index.d.ts b/packages/types/index.d.ts
index e61a259f..91130065 100644
--- a/packages/types/index.d.ts
+++ b/packages/types/index.d.ts
@@ -45,6 +45,7 @@ export interface IStep {
flowId: string;
key: string;
appKey: string;
+ iconUrl: string;
type: 'action' | 'trigger';
connectionId: string;
status: string;
diff --git a/packages/web/src/components/AppIcon/index.tsx b/packages/web/src/components/AppIcon/index.tsx
index 1d07d8f6..2c114bca 100644
--- a/packages/web/src/components/AppIcon/index.tsx
+++ b/packages/web/src/components/AppIcon/index.tsx
@@ -14,7 +14,16 @@ const inlineImgStyle: React.CSSProperties = {
};
export default function AppIcon(props: AppIconProps & AvatarProps): React.ReactElement {
- const { name, url, color, sx = {}, variant = "square", ...restProps } = props;
+ const {
+ name,
+ url,
+ color,
+ sx = {},
+ variant = "square",
+ ...restProps
+ } = props;
+
+ const initialLetter = name?.[0];
return (
);
diff --git a/packages/web/src/components/FlowAppIcons/index.tsx b/packages/web/src/components/FlowAppIcons/index.tsx
new file mode 100644
index 00000000..9932b735
--- /dev/null
+++ b/packages/web/src/components/FlowAppIcons/index.tsx
@@ -0,0 +1,37 @@
+import * as React from 'react';
+import type { IStep } from '@automatisch/types';
+
+import AppIcon from 'components/AppIcon';
+import IntermediateStepCount from 'components/IntermediateStepCount';
+
+type FlowAppIconsProps = {
+ steps: Partial[];
+}
+
+export default function FlowAppIcons(props: FlowAppIconsProps) {
+ const { steps } = props;
+ const stepsCount = steps.length;
+ const firstStep = steps[0];
+ const lastStep = steps[stepsCount - 1];
+ const intermeaditeStepCount = stepsCount - 2;
+
+
+ return (
+ <>
+
+
+ {intermeaditeStepCount > 0 && }
+
+
+ >
+ )
+};
diff --git a/packages/web/src/components/FlowRow/index.tsx b/packages/web/src/components/FlowRow/index.tsx
index 43856d55..a33bdc19 100644
--- a/packages/web/src/components/FlowRow/index.tsx
+++ b/packages/web/src/components/FlowRow/index.tsx
@@ -7,8 +7,7 @@ import MoreHorizIcon from '@mui/icons-material/MoreHoriz';
import { DateTime } from 'luxon';
import type { IFlow } from '@automatisch/types';
-import IntermediateStepCount from 'components/IntermediateStepCount';
-import AppIcon from 'components/AppIcon';
+import FlowAppIcons from 'components/FlowAppIcons';
import FlowContextMenu from 'components/FlowContextMenu';
import useFormatMessage from 'hooks/useFormatMessage';
import * as URLS from 'config/urls';
@@ -46,21 +45,7 @@ export default function FlowRow(props: FlowRowProps): React.ReactElement {
-
-
-
-
-
+
-
+
+{count}
diff --git a/packages/web/src/components/IntermediateStepCount/style.ts b/packages/web/src/components/IntermediateStepCount/style.ts
index e4580f42..95ac6760 100644
--- a/packages/web/src/components/IntermediateStepCount/style.ts
+++ b/packages/web/src/components/IntermediateStepCount/style.ts
@@ -7,6 +7,6 @@ export const Container = styled('div')(({ theme }) => ({
alignItems: 'center',
minWidth: 50,
height: 50,
- border: '1px solid #000',
+ border: `1px solid ${theme.palette.text.disabled}`,
borderRadius: theme.shape.borderRadius,
}));
diff --git a/packages/web/src/graphql/queries/get-flows.ts b/packages/web/src/graphql/queries/get-flows.ts
index c18bf02a..56e18dc2 100644
--- a/packages/web/src/graphql/queries/get-flows.ts
+++ b/packages/web/src/graphql/queries/get-flows.ts
@@ -13,6 +13,9 @@ export const GET_FLOWS = gql`
name
createdAt
updatedAt
+ steps {
+ iconUrl
+ }
}
}
}