Skip to content

Commit 627ca2f

Browse files
authored
[INS-1598] Update onboarding view for v12 (#9305)
* feat: update onboarding version and add new features with corresponding images * chore: remove outdated onboarding images * fix: update icon types for features and adjust layout in onboarding
1 parent bf113c7 commit 627ca2f

16 files changed

+49
-43
lines changed

packages/insomnia/src/entry.client.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ try {
4343
// we need to inject state into localStorage
4444
const skipOnboarding = getSkipOnboarding();
4545
if (skipOnboarding) {
46-
window.localStorage.setItem('hasSeenOnboardingV11', skipOnboarding.toString());
46+
window.localStorage.setItem('hasSeenOnboardingV12', skipOnboarding.toString());
4747
window.localStorage.setItem('hasUserLoggedInBefore', skipOnboarding.toString());
4848
}
4949
} catch (e) {

packages/insomnia/src/routes/onboarding.$.tsx

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,53 @@
1-
import type { IconName } from '@fortawesome/fontawesome-svg-core';
1+
import type { IconProp } from '@fortawesome/fontawesome-svg-core';
2+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
23
import { Link, Route, Routes, useLocation } from 'react-router';
34

45
import { InsomniaLogo } from '~/ui/components/insomnia-icon';
56
import { TrailLinesContainer } from '~/ui/components/trail-lines-container';
6-
import git_projects from '~/ui/images/onboarding/git_projects.png';
7-
import multiple_tabs from '~/ui/images/onboarding/multiple_tabs.png';
8-
import secret_vaults from '~/ui/images/onboarding/secret_vaults.png';
7+
import generate_mocks from '~/ui/images/onboarding/generate_mocks.png';
8+
import git_for_all from '~/ui/images/onboarding/git_for_all.png';
9+
import mcp_client from '~/ui/images/onboarding/mcp_client.png';
10+
import smart_commits from '~/ui/images/onboarding/smart_commits.png';
911

1012
const features = [
1113
{
12-
id: 'multiple_tabs',
13-
icon: 'window-restore',
14-
title: 'Multiple Tabs',
14+
id: 'mcp_client',
15+
icon: ['fac', 'mcp'] as unknown as IconProp,
16+
title: 'MCP Client',
1517
description:
16-
'Finally you can work on multiple collections and design documents with the multiple tabs capability that allows you to easily switch between one and another.',
17-
image: multiple_tabs,
18+
'Test and debug MCP servers with the same workflow you use for APIs including support for oAuth and Dynamic Client Registration.',
19+
image: mcp_client,
1820
},
1921
{
20-
id: 'git_sync',
21-
icon: 'git',
22-
title: 'New Git Sync',
22+
id: 'auto_generated_mock_servers',
23+
icon: 'server',
24+
title: 'Auto-generated mock servers',
2325
description:
24-
'An entirely rebuilt Git Sync experience, where your entire project can be connected to a Git repository and we will import multiple Insomnia resources at once.',
25-
image: git_projects,
26+
'Automatically generate a mock server with executable routes from an OpenAPI spec, URL, or chat-based prompt.',
27+
image: generate_mocks,
2628
},
2729
{
28-
id: 'secret_vaults',
29-
icon: 'cloud',
30-
title: 'Secret Vaults',
30+
id: 'smart_commits',
31+
icon: ['fas', 'code-commit'],
32+
title: 'Smart Commits',
3133
description:
32-
'With this enterprise capability we now support connecting your secrets with AWS secret Manager, Azure Key Vault, GCP Secret Manager and Hashicorp Vault.',
33-
image: secret_vaults,
34-
rounded: true,
34+
'Spend more time coding and less time cleaning up commits. Automatically create commits and comments from your staged changes using AI.',
35+
image: smart_commits,
36+
},
37+
{
38+
id: 'git_sync_essentials',
39+
icon: ['fab', 'git-alt'],
40+
title: 'Git Sync for all plans',
41+
description:
42+
'Now Essentials (free) plan users can get the full benefits of Git Sync projects for up to 3 plan users.',
43+
image: git_for_all,
3544
},
3645
] satisfies {
3746
id: string;
38-
icon: IconName;
47+
icon: IconProp;
3948
title: string;
4049
description: string;
4150
image: string;
42-
rounded?: boolean;
4351
}[];
4452

4553
const FeatureWizardView = () => {
@@ -48,14 +56,14 @@ const FeatureWizardView = () => {
4856
<Route
4957
path="/"
5058
element={
51-
<ul className="grid grid-cols-1 justify-center gap-2 p-4">
59+
<ul className="grid grid-cols-2 justify-center gap-2 p-4">
5260
{features.map(feature => (
5361
<li key={feature.id}>
5462
<Link
55-
className="flex w-full select-none items-center gap-2 rounded-sm border border-solid border-[--hl-md] bg-[--hl-xs] px-8 py-4 transition-colors hover:bg-[--hl-sm] hover:no-underline"
63+
className="flex h-32 w-full select-none flex-col items-center justify-center gap-2 rounded-sm border border-solid border-[--hl-md] bg-[--hl-xs] p-4 transition-colors hover:bg-[--hl-sm] hover:no-underline"
5664
to={`/onboarding/${feature.id}`}
5765
>
58-
<i className={`fa fa-${feature.icon} text-xl`} />
66+
<FontAwesomeIcon icon={feature.icon} className="text-xl" />
5967
<span className="text-center text-sm">{feature.title}</span>
6068
</Link>
6169
</li>
@@ -73,26 +81,22 @@ const FeatureWizardView = () => {
7381
key={feature.id}
7482
path={feature.id}
7583
element={
76-
<div className="relative flex h-80 flex-col gap-4 bg-[--color-bg] p-4 text-left">
84+
<div className="relative flex h-96 flex-col gap-4 bg-[--color-bg] p-4 text-left">
7785
<h1 className="flex justify-between text-lg">
7886
<span>{feature.title}</span>
7987
<span>
8088
{index + 1}
8189
<span className="text-[--hl-xl]">/{features.length}</span>
8290
</span>
8391
</h1>
84-
<div className="flex max-h-72 flex-col items-center gap-3 overflow-y-auto">
92+
<div className="flex flex-1 flex-col items-center gap-3 overflow-y-auto">
8593
<p className="text-sm text-[--color-font]">
8694
<span>{feature.description}</span>
8795
</p>
88-
<div className="h-32">
89-
{feature.rounded ? (
90-
<img className="aspect-auto max-h-32 rounded-md" src={feature.image} />
91-
) : (
92-
<img className="aspect-auto max-h-32" src={feature.image} />
93-
)}
96+
<div className="h-48 flex-1">
97+
<img className="aspect-auto max-h-48" src={feature.image} />
9498
</div>
95-
<div className="sticky bottom-0 left-0 flex w-full justify-between bg-gradient-to-t from-[--color-bg] to-[rgba(var(--color-bg-rgb),80%)] p-4 text-sm font-normal">
99+
<div className="flex w-full shrink-0 justify-between bg-gradient-to-t from-[--color-bg] to-[rgba(var(--color-bg-rgb),80%)] p-4 text-sm font-normal">
96100
{prevPath ? (
97101
<Link className="hover:no-underline" to={prevPath}>
98102
<i className="fa fa-arrow-left" /> Previous feature
@@ -128,18 +132,20 @@ const Component = () => {
128132
return (
129133
<div className="relative flex h-full w-full bg-[--color-bg] text-left">
130134
<TrailLinesContainer>
131-
<div className="flex h-full min-h-[465px] w-[600px] flex-col items-center justify-center">
132-
<div className="relative flex h-[465px] w-full flex-col items-center justify-center gap-[var(--padding-sm)] rounded-[var(--radius-md)] border border-solid border-[--hl-sm] bg-[--hl-xs] p-[--padding-lg] pt-12">
135+
<div className="flex h-full min-h-[500px] w-[600px] flex-col items-center justify-center">
136+
<div className="relative flex h-[500px] w-full flex-col items-center justify-center gap-[var(--padding-sm)] rounded-[var(--radius-md)] border border-solid border-[--hl-sm] bg-[--hl-xs] p-[--padding-lg] pt-12">
133137
<InsomniaLogo className="absolute left-1/2 top-0 h-16 w-16 translate-x-[-50%] translate-y-[-50%] transform" />
134138
<div className="flex h-full flex-col gap-6 text-[--color-font]">
135-
<h1 className="text-center text-xl">🚀 Welcome to Insomnia 11!</h1>
139+
<h1 className="text-center text-xl">🚀 Welcome to Insomnia 12!</h1>
136140
<div>
137-
<p>We shipped hundreds of improvements including the following notable features:</p>
141+
<p>
142+
This new version of Insomnia is the biggest one ever! Notable new features that we have shipped are:
143+
</p>
138144
</div>
139145
<div className="relative w-full flex-1">
140146
<FeatureWizardView />
141147
</div>
142-
<div className="flex items-center justify-between">
148+
<div className="flex shrink-0 items-center justify-between">
143149
{location.pathname !== '/onboarding' ? (
144150
<Link className="flex items-center gap-2 px-4 text-sm hover:no-underline" to="/onboarding">
145151
<i className="fa fa-border-all" />
@@ -151,7 +157,7 @@ const Component = () => {
151157
<Link
152158
className="rounded-sm border border-solid border-[--hl-md] bg-[--color-surprise] px-3 py-2 text-sm text-[--color-font-surprise] transition-colors hover:bg-opacity-90 hover:no-underline"
153159
to={window.localStorage.getItem('prefers-project-type') ? '/organization' : '/onboarding/migrate'}
154-
onClick={() => window.localStorage.setItem('hasSeenOnboardingV11', 'true')}
160+
onClick={() => window.localStorage.setItem('hasSeenOnboardingV12', 'true')}
155161
>
156162
Continue
157163
</Link>
-98.2 KB
Binary file not shown.
-38.7 KB
Binary file not shown.
56.8 KB
Loading
53.2 KB
Loading
-93.4 KB
Binary file not shown.
-64 KB
Binary file not shown.
66.1 KB
Loading
-34.1 KB
Binary file not shown.

0 commit comments

Comments
 (0)