Skip to content

Commit 1182df6

Browse files
replace fpat resilution from set from extenal link to internal preference & prompting
1 parent 71b401c commit 1182df6

12 files changed

Lines changed: 68 additions & 61 deletions

File tree

CONTRIBUTING.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
# Installation & Build
32

43
```
@@ -8,20 +7,13 @@ yarn
87
yarn editor
98
```
109

11-
12-
## Setup credentials for development
13-
14-
visit http://localhost:6626/preferences/access-tokens and set pats for api calls
15-
16-
1710
## Structure
1811

1912
- editor - visual editor for development
2013
- editor-packages - editor related packages
2114
- packages - core packages contributing to the code-gen logic
2215
- externals - external foundational packages, like [reflect-core](https://github.com/reflect-ui/reflect-core-ts)
2316

24-
2517
# Why 6626?
2618

2719
6626 is from `69 68 2 67` Which is a decimal representation of ED2C(Engine: Design 2 Code)

editor/components/home/home-side-bar-tree.tsx

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,6 @@ const preset_pages: PresetPage[] = [
8989
},
9090
],
9191
},
92-
{
93-
id: "Figma",
94-
name: "Figma",
95-
path: "",
96-
depth: 0,
97-
children: [
98-
{
99-
id: "setup-figma-pat",
100-
name: "Set Access Token",
101-
path: "/preferences/access-tokens",
102-
depth: 1,
103-
},
104-
],
105-
},
10692
];
10793

10894
export function HomeSidebarTree() {

editor/hooks/use-design.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,7 @@ export function useDesign({
149149
.catch((err: FigmaRemoteErrors) => {
150150
if (err instanceof UnauthorizedError) {
151151
// unauthorized
152-
router.push("/preferences/access-tokens");
153-
console.info(`(ignored) error while fetching design`, err);
152+
console.error(`(ignored) error while fetching design`, err);
154153
return;
155154
}
156155

editor/pages/figma/index.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,6 @@ import Link from "next/link";
33
export default function FigmaDemoIndexPage() {
44
return (
55
<div style={{ padding: 24 }}>
6-
<p>
7-
In order to develop design to code from figma, you'll need to set figma
8-
personal access token via
9-
<br />
10-
<Link href="/preferences/access-tokens">Preferences</Link>
11-
</p>
126
<Link href="./figma/to-flutter">Flutter demo</Link>
137
<br />
148
<Link href="./figma/to-react">React demo</Link>

editor/scaffolds/editor/_providers.tsx

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,23 @@ import { EditorCodeWebworkerProvider } from "scaffolds/editor/editor-code-webwor
66
import { EditorToastProvider } from "./editor-toast-provider";
77
import { FigmaImageServiceProvider } from "./editor-figma-image-service-provider";
88
import { useEditorState } from "core/states";
9-
import { EditorPreferenceProvider } from "./editor-preference-provider";
109

1110
export function EditorDefaultProviders(props: { children: React.ReactNode }) {
1211
const [state] = useEditorState();
1312

1413
return (
15-
<EditorPreferenceProvider>
16-
<EditorToastProvider>
17-
<EditorImageRepositoryProvider>
18-
<EditorCodeWebworkerProvider>
19-
<EditorPreviewDataProvider>
20-
<EditorShortcutsProvider>
21-
<FigmaImageServiceProvider filekey={state?.design?.key}>
22-
{props.children}
23-
</FigmaImageServiceProvider>
24-
</EditorShortcutsProvider>
25-
</EditorPreviewDataProvider>
26-
</EditorCodeWebworkerProvider>
27-
</EditorImageRepositoryProvider>
28-
</EditorToastProvider>
29-
</EditorPreferenceProvider>
14+
<EditorToastProvider>
15+
<EditorImageRepositoryProvider>
16+
<EditorCodeWebworkerProvider>
17+
<EditorPreviewDataProvider>
18+
<EditorShortcutsProvider>
19+
<FigmaImageServiceProvider filekey={state?.design?.key}>
20+
{props.children}
21+
</FigmaImageServiceProvider>
22+
</EditorShortcutsProvider>
23+
</EditorPreviewDataProvider>
24+
</EditorCodeWebworkerProvider>
25+
</EditorImageRepositoryProvider>
26+
</EditorToastProvider>
3027
);
3128
}

editor/scaffolds/editor/editor-figma-image-service-provider.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ export function FigmaImageServiceProvider({
5252
);
5353

5454
const fetcher = useMemo(() => {
55+
if (!service) return null;
5556
return {
5657
fetch: (...p: FetcherParams) => {
5758
const task = service.fetch(...p);

editor/scaffolds/editor/setup.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { warmup } from "scaffolds/editor";
77
import { EditorBrowserMetaHead } from "components/editor";
88
import type { FileResponse } from "@design-sdk/figma-remote-types";
99
import { useWorkspaceInitializerContext } from "scaffolds/workspace";
10+
import { useDispatch } from "@code-editor/preferences";
1011

1112
const action_fetchfile_id = "fetchfile" as const;
1213

@@ -54,6 +55,14 @@ export function SetupEditor({
5455

5556
const [loading, setLoading] = useState<boolean>(true);
5657
const [state] = useEditorState();
58+
const prefDispatch = useDispatch();
59+
60+
const openFpatConfigurationPreference = useCallback(() => {
61+
prefDispatch({
62+
type: "open",
63+
route: "/figma/personal-access-token",
64+
});
65+
}, [prefDispatch]);
5766

5867
const initialCanvasMode = q_map_canvas_mode_from_query(
5968
router.query.mode as string
@@ -149,9 +158,9 @@ export function SetupEditor({
149158
"You will now see the cached version of this file. To view the latest version, setup your personall access token."
150159
);
151160
// TODO: show signin prompt
152-
window.open("/preferences/access-tokens", "_blank");
161+
openFpatConfigurationPreference();
153162
} else {
154-
router.push("/preferences/access-tokens");
163+
openFpatConfigurationPreference();
155164
}
156165
break;
157166
}

editor/scaffolds/preferences/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export function EditorPreferencesRoutesProvider({
1717

1818
dispatch({
1919
type: "register",
20-
route: "/figma/personal-access-tokens",
20+
route: "/figma/personal-access-token",
2121
name: "Personal Access Tokens",
2222
icon: "@radix-ui/react-icons/FigmaLogoIcon",
2323
renderer: (p) => <PreferencesFigmaPersonalAccessTokens {...p} />,

editor/scaffolds/preferences/preferences-figma-personal-access-tokens.tsx

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,33 @@ export default function EditorPreferenceFigmaPersonalAccessTokenPage({
1515
state,
1616
dispatch,
1717
}: PreferencePageProps) {
18+
const [token, setToken] = React.useState<string | null>(null);
19+
20+
useEffect(() => {
21+
setToken(personal.get_safe());
22+
}, []);
23+
1824
return (
1925
<PageContentLayout direction="row" spacebetween>
2026
<div>
2127
<h1>Personal Access Tokens</h1>
22-
<TextField disabled value="ftk_xxxxxxxx" />
28+
<TextField
29+
disabled
30+
fullWidth
31+
value={token ? masking(token) : ""}
32+
placeholder={"No personal access token set"}
33+
/>
2334
<div>
24-
<RegisterNewFpat onSuccess={() => {}} />
35+
<RegisterNewFpat
36+
onSuccess={(token) => {
37+
setToken(token);
38+
personal.set(token);
39+
setTimeout(() => {
40+
alert("Page will reload");
41+
window.location.reload();
42+
}, 1000);
43+
}}
44+
/>
2545
</div>
2646
</div>
2747
<HelpPanel
@@ -40,10 +60,10 @@ export default function EditorPreferenceFigmaPersonalAccessTokenPage({
4060
*/
4161
function masking(token: string): string {
4262
// reveal first 5 and last 5
43-
const first = token.substring(0, 5);
44-
const last = token.substring(token.length - 5, token.length);
45-
const length = token.length - 10;
46-
const masked = "x".repeat(length);
63+
const first = token.substring(0, 10);
64+
const last = token.substring(token.length - 10, token.length);
65+
const length = token.length - 20;
66+
const masked = "*".repeat(length);
4767
return first + masked + last;
4868
}
4969

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import React from "react";
2+
import { PreferencesProvider } from "./preference-provider";
3+
4+
export function WorkspaceDefaultProviders({
5+
children,
6+
}: React.PropsWithChildren<{}>) {
7+
return <PreferencesProvider>{children}</PreferencesProvider>;
8+
}

0 commit comments

Comments
 (0)