Skip to content

Commit 2dd4242

Browse files
update auth handling
1 parent f6899e4 commit 2dd4242

7 files changed

Lines changed: 83 additions & 18 deletions

File tree

editor-packages/editor-canvas/math/center-of.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export function centerOf(
2424
translate: XY;
2525
scale: number;
2626
} {
27-
console.log("get center of", rects, "in", viewbound);
2827
if (!rects || rects.length === 0) {
2928
return {
3029
box: viewbound,

editor/components/home/cards/card-variant-component.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,18 @@ export function ComponentCard({
2626
useEffect(() => {
2727
if (fat) {
2828
if (!thumbnail) {
29-
fetch.fetchNodeAsImage(data.file, fat, data.id).then((url) => {
30-
setThumbnail(url.__default);
31-
});
29+
fetch
30+
.fetchNodeAsImage(
31+
data.file,
32+
{
33+
personalAccessToken: fat.personalAccessToken,
34+
accessToken: fat.accessToken.token,
35+
},
36+
data.id
37+
)
38+
.then((url) => {
39+
setThumbnail(url.__default);
40+
});
3241
}
3342
}
3443
}, [fat]);

editor/components/home/cards/card-variant-scene.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,18 @@ export function SceneCard({
2222
useEffect(() => {
2323
if (fat) {
2424
if (!thumbnail) {
25-
fetch.fetchNodeAsImage(data.file, fat, data.id).then((url) => {
26-
setThumbnail(url.__default);
27-
});
25+
fetch
26+
.fetchNodeAsImage(
27+
data.file,
28+
{
29+
personalAccessToken: fat.personalAccessToken,
30+
accessToken: fat.accessToken.token,
31+
},
32+
data.id
33+
)
34+
.then((url) => {
35+
setThumbnail(url.__default);
36+
});
2837
}
2938
}
3039
}, [fat]);

editor/hooks/use-design.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,10 @@ export function useDesign({
131131
.fetchTargetAsReflect({
132132
file: targetnodeconfig.file,
133133
node: targetnodeconfig.node,
134-
auth: fat,
134+
auth: {
135+
personalAccessToken: fat.personalAccessToken,
136+
accessToken: fat.accessToken.token,
137+
},
135138
})
136139
.then((res) => {
137140
cacheStore.set(res.raw); // setting cache does not need to be determined by `use_session_cache` option.
@@ -181,9 +184,12 @@ export function useDesignFile({ file }: { file: string }) {
181184
const fat = useFigmaAccessToken();
182185
useEffect(() => {
183186
if (file) {
184-
if (fat.accessToken || fat.personalAccessToken) {
187+
if (fat.personalAccessToken || fat.accessToken.token) {
185188
async function handle() {
186-
const repo = new FigmaDesignRepository(fat);
189+
const repo = new FigmaDesignRepository({
190+
personalAccessToken: fat.personalAccessToken,
191+
accessToken: fat.accessToken.token,
192+
});
187193
const iterator = repo.fetchFile(file);
188194
let next: IteratorResult<TFetchFileForApp>;
189195
while ((next = await iterator.next()).done === false) {
@@ -192,18 +198,24 @@ export function useDesignFile({ file }: { file: string }) {
192198
}
193199
handle();
194200
} else {
195-
setDesignFile({
196-
__type: "error",
197-
reason: "no-auth",
198-
});
201+
if (fat.accessToken.loading) {
202+
setDesignFile({
203+
__type: "loading",
204+
});
205+
} else {
206+
setDesignFile({
207+
__type: "error",
208+
reason: "no-auth",
209+
});
210+
}
199211
}
200212
} else {
201213
setDesignFile({
202214
__type: "error",
203215
reason: "no-file",
204216
});
205217
}
206-
}, [file, fat.accessToken]);
218+
}, [file, fat.accessToken.loading]);
207219

208220
return designfile;
209221
}

editor/hooks/use-figma-access-token.ts

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,46 @@ import { personal } from "@design-sdk/figma-auth-store";
1313
* ```
1414
* @returns
1515
*/
16-
export function useFigmaAccessToken() {
16+
export function useFigmaAccessToken(): {
17+
accessToken: { token?: string; loading: boolean; verified: boolean };
18+
personalAccessToken: string;
19+
} {
1720
const personalAccessToken = personal.get_safe();
1821
const [fat, setFat] = useState<string>(null);
22+
const [loading, setLoading] = useState<boolean>(true);
1923
const router = useRouter();
2024

2125
useEffect(() => {
2226
setFat(router.query.fat as string); // undefined is a valid input.
27+
if (router.query.fat) {
28+
setLoading(false);
29+
}
30+
}, [router.query]);
31+
32+
useEffect(() => {
33+
setTimeout(() => {
34+
// assume router query loading is complete after this timeout
35+
setLoading(false);
36+
}, 50);
2337
}, [router]);
2438

25-
return { accessToken: fat, personalAccessToken: personalAccessToken };
39+
if (personalAccessToken) {
40+
return {
41+
accessToken: {
42+
token: fat,
43+
loading: loading,
44+
verified: false,
45+
},
46+
personalAccessToken,
47+
};
48+
}
49+
50+
return {
51+
accessToken: {
52+
token: fat,
53+
loading: loading,
54+
verified: false,
55+
},
56+
personalAccessToken: personalAccessToken,
57+
};
2658
}

editor/pages/files/[key]/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export default function FileEntryEditor() {
2626

2727
// background whole file fetching
2828
const file = useDesignFile({ file: filekey });
29+
2930
const prevstate =
3031
initialState.type == "success" && initialState.value.history.present;
3132

editor/scaffolds/editor/editor.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ export function Editor({
4343
MainImageRepository.instance = new RemoteImageRepositories(
4444
state.design.key,
4545
{
46-
authentication: fat,
46+
authentication: {
47+
personalAccessToken: fat.personalAccessToken,
48+
accessToken: fat.accessToken.token,
49+
},
4750
}
4851
);
4952
MainImageRepository.instance.register(

0 commit comments

Comments
 (0)