@lvce-editor/extension-detail-view 3.40.0 → 3.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extensionDetailViewWorkerMain.js +212 -162
- package/package.json +1 -1
|
@@ -2136,7 +2136,8 @@ const create = (uid, uri, x, y, width, height, platform, assetDir) => {
|
|
|
2136
2136
|
themesMarkdownDom: [],
|
|
2137
2137
|
uri,
|
|
2138
2138
|
webViews: [],
|
|
2139
|
-
width
|
|
2139
|
+
width,
|
|
2140
|
+
readmeUrl: ''
|
|
2140
2141
|
};
|
|
2141
2142
|
set$1(uid, state, state);
|
|
2142
2143
|
};
|
|
@@ -2297,8 +2298,7 @@ const {
|
|
|
2297
2298
|
set,
|
|
2298
2299
|
setColorTheme: setColorTheme$1,
|
|
2299
2300
|
uninstallExtension,
|
|
2300
|
-
sendMessagePortToMarkdownWorker: sendMessagePortToMarkdownWorker$1
|
|
2301
|
-
} = RendererWorker;
|
|
2301
|
+
sendMessagePortToMarkdownWorker: sendMessagePortToMarkdownWorker$1} = RendererWorker;
|
|
2302
2302
|
|
|
2303
2303
|
const setColorTheme = id => {
|
|
2304
2304
|
return setColorTheme$1(id);
|
|
@@ -2409,17 +2409,25 @@ const loadChangelogContent = async path => {
|
|
|
2409
2409
|
const selectTabChangelog = async state => {
|
|
2410
2410
|
const {
|
|
2411
2411
|
extension,
|
|
2412
|
-
baseUrl
|
|
2412
|
+
baseUrl,
|
|
2413
|
+
tabs
|
|
2413
2414
|
} = state;
|
|
2414
2415
|
const changelogContent = await loadChangelogContent(extension.path); // TODO use uri
|
|
2415
2416
|
const changelogMarkdownHtml = await renderMarkdown(changelogContent, {
|
|
2416
2417
|
baseUrl
|
|
2417
2418
|
});
|
|
2418
2419
|
const changelogDom = await getMarkdownVirtualDom(changelogMarkdownHtml);
|
|
2420
|
+
const newTabs = tabs.map(tab => {
|
|
2421
|
+
return {
|
|
2422
|
+
...tab,
|
|
2423
|
+
selected: tab.name === Changelog
|
|
2424
|
+
};
|
|
2425
|
+
});
|
|
2419
2426
|
return {
|
|
2420
2427
|
...state,
|
|
2421
2428
|
selectedTab: Changelog,
|
|
2422
|
-
changelogVirtualDom: changelogDom
|
|
2429
|
+
changelogVirtualDom: changelogDom,
|
|
2430
|
+
tabs: newTabs
|
|
2423
2431
|
};
|
|
2424
2432
|
};
|
|
2425
2433
|
|
|
@@ -2427,9 +2435,8 @@ const selectTabDefault = async state => {
|
|
|
2427
2435
|
return state;
|
|
2428
2436
|
};
|
|
2429
2437
|
|
|
2430
|
-
const loadReadmeContent = async
|
|
2438
|
+
const loadReadmeContent = async readmeUrl => {
|
|
2431
2439
|
try {
|
|
2432
|
-
const readmeUrl = join(path, 'README.md');
|
|
2433
2440
|
const readmeContent = await readFile(readmeUrl);
|
|
2434
2441
|
return readmeContent;
|
|
2435
2442
|
} catch (error) {
|
|
@@ -2445,18 +2452,26 @@ const loadReadmeContent = async path => {
|
|
|
2445
2452
|
|
|
2446
2453
|
const selectTabDetails = async state => {
|
|
2447
2454
|
const {
|
|
2448
|
-
|
|
2449
|
-
|
|
2455
|
+
baseUrl,
|
|
2456
|
+
readmeUrl,
|
|
2457
|
+
tabs
|
|
2450
2458
|
} = state;
|
|
2451
|
-
const readmeContent = await loadReadmeContent(
|
|
2459
|
+
const readmeContent = await loadReadmeContent(readmeUrl);
|
|
2452
2460
|
const readmeHtml = await renderMarkdown(readmeContent, {
|
|
2453
2461
|
baseUrl
|
|
2454
2462
|
});
|
|
2455
2463
|
const detailsDom = await getMarkdownVirtualDom(readmeHtml);
|
|
2464
|
+
const newTabs = tabs.map(tab => {
|
|
2465
|
+
return {
|
|
2466
|
+
...tab,
|
|
2467
|
+
selected: tab.name === Details
|
|
2468
|
+
};
|
|
2469
|
+
});
|
|
2456
2470
|
return {
|
|
2457
2471
|
...state,
|
|
2458
2472
|
selectedTab: Details,
|
|
2459
|
-
detailsVirtualDom: detailsDom
|
|
2473
|
+
detailsVirtualDom: detailsDom,
|
|
2474
|
+
tabs: newTabs
|
|
2460
2475
|
};
|
|
2461
2476
|
};
|
|
2462
2477
|
|
|
@@ -2465,7 +2480,8 @@ const selectTabFeatures = async state => {
|
|
|
2465
2480
|
extension,
|
|
2466
2481
|
baseUrl,
|
|
2467
2482
|
selectedFeature,
|
|
2468
|
-
features
|
|
2483
|
+
features,
|
|
2484
|
+
tabs
|
|
2469
2485
|
} = state;
|
|
2470
2486
|
if (features.length === 0) {
|
|
2471
2487
|
return state;
|
|
@@ -2473,10 +2489,17 @@ const selectTabFeatures = async state => {
|
|
|
2473
2489
|
const actualSelectedFeature = selectedFeature || Theme;
|
|
2474
2490
|
const fn = getFeatureDetailsHandler(actualSelectedFeature);
|
|
2475
2491
|
const partialNewState = await fn(extension, baseUrl);
|
|
2492
|
+
const newTabs = tabs.map(tab => {
|
|
2493
|
+
return {
|
|
2494
|
+
...tab,
|
|
2495
|
+
selected: tab.name === Features
|
|
2496
|
+
};
|
|
2497
|
+
});
|
|
2476
2498
|
return {
|
|
2477
2499
|
...state,
|
|
2478
2500
|
selectedTab: Features,
|
|
2479
2501
|
selectedFeature: features[0].id || '',
|
|
2502
|
+
tabs: newTabs,
|
|
2480
2503
|
...partialNewState
|
|
2481
2504
|
};
|
|
2482
2505
|
};
|
|
@@ -2529,6 +2552,11 @@ const initialize = async () => {
|
|
|
2529
2552
|
// TODO create connection to file system worker
|
|
2530
2553
|
};
|
|
2531
2554
|
|
|
2555
|
+
const existsFile = async uri => {
|
|
2556
|
+
// TODO ask file system worker
|
|
2557
|
+
return true;
|
|
2558
|
+
};
|
|
2559
|
+
|
|
2532
2560
|
const Web = 1;
|
|
2533
2561
|
const Electron = 2;
|
|
2534
2562
|
const Remote = 3;
|
|
@@ -2584,6 +2612,150 @@ const getBaseUrl = (extensionPath, platform) => {
|
|
|
2584
2612
|
}
|
|
2585
2613
|
};
|
|
2586
2614
|
|
|
2615
|
+
const getExtensionDetailButtons = (hasColorTheme, isBuiltin) => {
|
|
2616
|
+
const allActions = [{
|
|
2617
|
+
label: setColorTheme$3(),
|
|
2618
|
+
onClick: HandleClickSetColorTheme,
|
|
2619
|
+
enabled: hasColorTheme,
|
|
2620
|
+
name: SetColorTheme
|
|
2621
|
+
}, {
|
|
2622
|
+
label: disable(),
|
|
2623
|
+
onClick: HandleClickDisable,
|
|
2624
|
+
enabled: true,
|
|
2625
|
+
name: Disable
|
|
2626
|
+
}, {
|
|
2627
|
+
label: uninstall(),
|
|
2628
|
+
onClick: HandleClickUninstall,
|
|
2629
|
+
enabled: !isBuiltin,
|
|
2630
|
+
name: Uninstall
|
|
2631
|
+
}];
|
|
2632
|
+
return allActions;
|
|
2633
|
+
};
|
|
2634
|
+
|
|
2635
|
+
const getExtensionIdFromUri = uri => {
|
|
2636
|
+
const id = uri.slice('extension-detail://'.length);
|
|
2637
|
+
return id;
|
|
2638
|
+
};
|
|
2639
|
+
|
|
2640
|
+
const getTabs = (selectedTab, hasReadme, hasFeatures, hasChangelog) => {
|
|
2641
|
+
const tabs = [{
|
|
2642
|
+
label: details(),
|
|
2643
|
+
name: Details,
|
|
2644
|
+
selected: selectedTab === Details,
|
|
2645
|
+
enabled: hasReadme
|
|
2646
|
+
}, {
|
|
2647
|
+
label: features$1(),
|
|
2648
|
+
name: Features,
|
|
2649
|
+
selected: selectedTab === Features,
|
|
2650
|
+
enabled: hasFeatures
|
|
2651
|
+
}, {
|
|
2652
|
+
label: changelog(),
|
|
2653
|
+
name: Changelog,
|
|
2654
|
+
selected: selectedTab === Changelog,
|
|
2655
|
+
enabled: hasChangelog
|
|
2656
|
+
}];
|
|
2657
|
+
return tabs;
|
|
2658
|
+
};
|
|
2659
|
+
|
|
2660
|
+
const Small = 1;
|
|
2661
|
+
const Normal = 2;
|
|
2662
|
+
const Large = 3;
|
|
2663
|
+
|
|
2664
|
+
const getViewletSize = width => {
|
|
2665
|
+
if (width < 180) {
|
|
2666
|
+
return Small;
|
|
2667
|
+
}
|
|
2668
|
+
if (width < 768) {
|
|
2669
|
+
return Normal;
|
|
2670
|
+
}
|
|
2671
|
+
return Large;
|
|
2672
|
+
};
|
|
2673
|
+
|
|
2674
|
+
const isLanguageBasicsExtension = extension => {
|
|
2675
|
+
return extension.name && extension.name.startsWith('Language Basics');
|
|
2676
|
+
};
|
|
2677
|
+
|
|
2678
|
+
const isThemeExtension = extension => {
|
|
2679
|
+
return extension.name && extension.name.endsWith(' Theme');
|
|
2680
|
+
};
|
|
2681
|
+
|
|
2682
|
+
const getIcon = (extension, platform, assetDir) => {
|
|
2683
|
+
if (!extension) {
|
|
2684
|
+
return extensionDefaultIcon(assetDir);
|
|
2685
|
+
}
|
|
2686
|
+
if (!extension.path || !extension.icon) {
|
|
2687
|
+
if (isLanguageBasicsExtension(extension)) {
|
|
2688
|
+
return extensionLanguageBasics(assetDir);
|
|
2689
|
+
}
|
|
2690
|
+
if (isThemeExtension(extension)) {
|
|
2691
|
+
return extensionTheme(assetDir);
|
|
2692
|
+
}
|
|
2693
|
+
return extensionDefaultIcon(assetDir);
|
|
2694
|
+
}
|
|
2695
|
+
if (platform === Remote || platform === Electron) {
|
|
2696
|
+
if (extension.builtin) {
|
|
2697
|
+
return `${assetDir}/extensions/${extension.id}/${extension.icon}`;
|
|
2698
|
+
}
|
|
2699
|
+
return `/remote/${extension.path}/${extension.icon}`; // TODO support windows paths
|
|
2700
|
+
}
|
|
2701
|
+
return '';
|
|
2702
|
+
};
|
|
2703
|
+
|
|
2704
|
+
const getDescription = extension => {
|
|
2705
|
+
if (!extension || !extension.description) {
|
|
2706
|
+
return 'n/a';
|
|
2707
|
+
}
|
|
2708
|
+
return extension.description;
|
|
2709
|
+
};
|
|
2710
|
+
|
|
2711
|
+
const getName = extension => {
|
|
2712
|
+
if (extension && extension.name) {
|
|
2713
|
+
return extension.name;
|
|
2714
|
+
}
|
|
2715
|
+
if (extension && extension.id) {
|
|
2716
|
+
return extension.id;
|
|
2717
|
+
}
|
|
2718
|
+
return 'n/a';
|
|
2719
|
+
};
|
|
2720
|
+
|
|
2721
|
+
const getBadge = (builtin, badgeEnabled) => {
|
|
2722
|
+
if (builtin && badgeEnabled) {
|
|
2723
|
+
return 'builtin';
|
|
2724
|
+
}
|
|
2725
|
+
return '';
|
|
2726
|
+
};
|
|
2727
|
+
|
|
2728
|
+
const hasColorThemes = extension => {
|
|
2729
|
+
return Boolean(extension && extension.colorThemes && extension.colorThemes.length > 0);
|
|
2730
|
+
};
|
|
2731
|
+
|
|
2732
|
+
const loadHeaderContent = (state, platform, extension) => {
|
|
2733
|
+
const {
|
|
2734
|
+
assetDir,
|
|
2735
|
+
builtinExtensionsBadgeEnabled
|
|
2736
|
+
} = state;
|
|
2737
|
+
const iconSrc = getIcon(extension, platform, assetDir);
|
|
2738
|
+
const description = getDescription(extension);
|
|
2739
|
+
const name = getName(extension);
|
|
2740
|
+
const extensionUri = extension.uri || extension.path;
|
|
2741
|
+
const extensionId = extension?.id || 'n/a';
|
|
2742
|
+
const extensionVersion = extension?.version || 'n/a';
|
|
2743
|
+
const hasColorTheme = hasColorThemes(extension);
|
|
2744
|
+
const isBuiltin = extension?.builtin;
|
|
2745
|
+
const badge = getBadge(isBuiltin, builtinExtensionsBadgeEnabled);
|
|
2746
|
+
return {
|
|
2747
|
+
badge,
|
|
2748
|
+
description,
|
|
2749
|
+
extension,
|
|
2750
|
+
extensionId,
|
|
2751
|
+
extensionUri,
|
|
2752
|
+
extensionVersion,
|
|
2753
|
+
hasColorTheme,
|
|
2754
|
+
iconSrc,
|
|
2755
|
+
name
|
|
2756
|
+
};
|
|
2757
|
+
};
|
|
2758
|
+
|
|
2587
2759
|
const getCategories = () => {
|
|
2588
2760
|
// TODO
|
|
2589
2761
|
return [{
|
|
@@ -2685,31 +2857,6 @@ const getDisplaySize = size => {
|
|
|
2685
2857
|
});
|
|
2686
2858
|
};
|
|
2687
2859
|
|
|
2688
|
-
const getExtensionDetailButtons = (hasColorTheme, isBuiltin) => {
|
|
2689
|
-
const allActions = [{
|
|
2690
|
-
label: setColorTheme$3(),
|
|
2691
|
-
onClick: HandleClickSetColorTheme,
|
|
2692
|
-
enabled: hasColorTheme,
|
|
2693
|
-
name: SetColorTheme
|
|
2694
|
-
}, {
|
|
2695
|
-
label: disable(),
|
|
2696
|
-
onClick: HandleClickDisable,
|
|
2697
|
-
enabled: true,
|
|
2698
|
-
name: Disable
|
|
2699
|
-
}, {
|
|
2700
|
-
label: uninstall(),
|
|
2701
|
-
onClick: HandleClickUninstall,
|
|
2702
|
-
enabled: !isBuiltin,
|
|
2703
|
-
name: Uninstall
|
|
2704
|
-
}];
|
|
2705
|
-
return allActions;
|
|
2706
|
-
};
|
|
2707
|
-
|
|
2708
|
-
const getExtensionIdFromUri = uri => {
|
|
2709
|
-
const id = uri.slice('extension-detail://'.length);
|
|
2710
|
-
return id;
|
|
2711
|
-
};
|
|
2712
|
-
|
|
2713
2860
|
const getFolderSize = async uri => {
|
|
2714
2861
|
if (!uri) {
|
|
2715
2862
|
throw new VError(`uri is required`);
|
|
@@ -2778,122 +2925,20 @@ const getResources = isBuiltin => {
|
|
|
2778
2925
|
}];
|
|
2779
2926
|
};
|
|
2780
2927
|
|
|
2781
|
-
const
|
|
2782
|
-
const
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
label: features$1(),
|
|
2789
|
-
name: Features,
|
|
2790
|
-
selected: selectedTab === Features,
|
|
2791
|
-
enabled: hasFeatures
|
|
2792
|
-
}, {
|
|
2793
|
-
label: changelog(),
|
|
2794
|
-
name: Changelog,
|
|
2795
|
-
selected: selectedTab === Changelog,
|
|
2796
|
-
enabled: hasChangelog
|
|
2797
|
-
}];
|
|
2798
|
-
return tabs;
|
|
2799
|
-
};
|
|
2800
|
-
|
|
2801
|
-
const Small = 1;
|
|
2802
|
-
const Normal = 2;
|
|
2803
|
-
const Large = 3;
|
|
2804
|
-
|
|
2805
|
-
const getViewletSize = width => {
|
|
2806
|
-
if (width < 180) {
|
|
2807
|
-
return Small;
|
|
2808
|
-
}
|
|
2809
|
-
if (width < 768) {
|
|
2810
|
-
return Normal;
|
|
2811
|
-
}
|
|
2812
|
-
return Large;
|
|
2813
|
-
};
|
|
2814
|
-
|
|
2815
|
-
const isLanguageBasicsExtension = extension => {
|
|
2816
|
-
return extension.name && extension.name.startsWith('Language Basics');
|
|
2817
|
-
};
|
|
2818
|
-
|
|
2819
|
-
const isThemeExtension = extension => {
|
|
2820
|
-
return extension.name && extension.name.endsWith(' Theme');
|
|
2821
|
-
};
|
|
2822
|
-
|
|
2823
|
-
const getIcon = (extension, platform, assetDir) => {
|
|
2824
|
-
if (!extension) {
|
|
2825
|
-
return extensionDefaultIcon(assetDir);
|
|
2826
|
-
}
|
|
2827
|
-
if (!extension.path || !extension.icon) {
|
|
2828
|
-
if (isLanguageBasicsExtension(extension)) {
|
|
2829
|
-
return extensionLanguageBasics(assetDir);
|
|
2830
|
-
}
|
|
2831
|
-
if (isThemeExtension(extension)) {
|
|
2832
|
-
return extensionTheme(assetDir);
|
|
2833
|
-
}
|
|
2834
|
-
return extensionDefaultIcon(assetDir);
|
|
2835
|
-
}
|
|
2836
|
-
if (platform === Remote || platform === Electron) {
|
|
2837
|
-
if (extension.builtin) {
|
|
2838
|
-
return `${assetDir}/extensions/${extension.id}/${extension.icon}`;
|
|
2839
|
-
}
|
|
2840
|
-
return `/remote/${extension.path}/${extension.icon}`; // TODO support windows paths
|
|
2841
|
-
}
|
|
2842
|
-
return '';
|
|
2843
|
-
};
|
|
2844
|
-
|
|
2845
|
-
const getDescription = extension => {
|
|
2846
|
-
if (!extension || !extension.description) {
|
|
2847
|
-
return 'n/a';
|
|
2848
|
-
}
|
|
2849
|
-
return extension.description;
|
|
2850
|
-
};
|
|
2851
|
-
|
|
2852
|
-
const getName = extension => {
|
|
2853
|
-
if (extension && extension.name) {
|
|
2854
|
-
return extension.name;
|
|
2855
|
-
}
|
|
2856
|
-
if (extension && extension.id) {
|
|
2857
|
-
return extension.id;
|
|
2858
|
-
}
|
|
2859
|
-
return 'n/a';
|
|
2860
|
-
};
|
|
2861
|
-
|
|
2862
|
-
const getBadge = (builtin, badgeEnabled) => {
|
|
2863
|
-
if (builtin && badgeEnabled) {
|
|
2864
|
-
return 'builtin';
|
|
2865
|
-
}
|
|
2866
|
-
return '';
|
|
2867
|
-
};
|
|
2868
|
-
|
|
2869
|
-
const hasColorThemes = extension => {
|
|
2870
|
-
return Boolean(extension && extension.colorThemes && extension.colorThemes.length > 0);
|
|
2871
|
-
};
|
|
2872
|
-
|
|
2873
|
-
const loadHeaderContent = (state, platform, extension) => {
|
|
2874
|
-
const {
|
|
2875
|
-
assetDir,
|
|
2876
|
-
builtinExtensionsBadgeEnabled
|
|
2877
|
-
} = state;
|
|
2878
|
-
const iconSrc = getIcon(extension, platform, assetDir);
|
|
2879
|
-
const description = getDescription(extension);
|
|
2880
|
-
const name = getName(extension);
|
|
2881
|
-
const extensionUri = extension.uri || extension.path;
|
|
2882
|
-
const extensionId = extension?.id || 'n/a';
|
|
2883
|
-
const extensionVersion = extension?.version || 'n/a';
|
|
2884
|
-
const hasColorTheme = hasColorThemes(extension);
|
|
2885
|
-
const isBuiltin = extension?.builtin;
|
|
2886
|
-
const badge = getBadge(isBuiltin, builtinExtensionsBadgeEnabled);
|
|
2928
|
+
const loadSideBarContent = async (extensionId, extensionVersion, extensionUri, isBuiltin) => {
|
|
2929
|
+
const folderSize = await getFolderSize(extensionUri);
|
|
2930
|
+
const displaySize = getDisplaySize(folderSize);
|
|
2931
|
+
const installationEntries = getInstallationEntries(displaySize, extensionId, extensionVersion, extensionUri);
|
|
2932
|
+
const marketplaceEntries = getMarketplaceEntries(isBuiltin);
|
|
2933
|
+
const categories = getCategories();
|
|
2934
|
+
const resources = getResources(isBuiltin);
|
|
2887
2935
|
return {
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
hasColorTheme,
|
|
2895
|
-
iconSrc,
|
|
2896
|
-
name
|
|
2936
|
+
installationEntries,
|
|
2937
|
+
marketplaceEntries,
|
|
2938
|
+
displaySize,
|
|
2939
|
+
categories,
|
|
2940
|
+
resources,
|
|
2941
|
+
folderSize
|
|
2897
2942
|
};
|
|
2898
2943
|
};
|
|
2899
2944
|
|
|
@@ -2959,7 +3004,11 @@ const loadContent = async (state, platform, savedState) => {
|
|
|
2959
3004
|
iconSrc,
|
|
2960
3005
|
name
|
|
2961
3006
|
} = headerData;
|
|
2962
|
-
const
|
|
3007
|
+
const readmeUrl = join(extension.path, 'README.md');
|
|
3008
|
+
join(extension.path, 'CHANGELOG.md');
|
|
3009
|
+
const hasReadme = await existsFile();
|
|
3010
|
+
const hasChangelog = await existsFile();
|
|
3011
|
+
const readmeContent = await loadReadmeContent(readmeUrl);
|
|
2963
3012
|
const baseUrl = getBaseUrl(extension.path, platform);
|
|
2964
3013
|
const readmeHtml = await renderMarkdown(readmeContent, {
|
|
2965
3014
|
baseUrl
|
|
@@ -2979,17 +3028,17 @@ const loadContent = async (state, platform, savedState) => {
|
|
|
2979
3028
|
} = restoreState(savedState);
|
|
2980
3029
|
const features = getFeatures(selectedFeature || Theme, extension);
|
|
2981
3030
|
const hasFeatures = features.length > 0;
|
|
2982
|
-
const hasReadme = true; // TODO
|
|
2983
|
-
const hasChangelog = true; // TODO
|
|
2984
3031
|
const tabs = getTabs(selectedTab, hasReadme, hasFeatures, hasChangelog);
|
|
2985
3032
|
const enabledTabs = tabs.filter(tab => tab.enabled);
|
|
2986
|
-
const folderSize = await getFolderSize(extensionUri);
|
|
2987
|
-
const displaySize = getDisplaySize(folderSize);
|
|
2988
|
-
const installationEntries = getInstallationEntries(displaySize, extensionId, extensionVersion, extensionUri);
|
|
2989
|
-
const marketplaceEntries = getMarketplaceEntries(isBuiltin);
|
|
2990
|
-
const categories = getCategories();
|
|
2991
|
-
const resources = getResources(isBuiltin);
|
|
2992
3033
|
const sizeValue = getViewletSize(width || 0);
|
|
3034
|
+
const {
|
|
3035
|
+
installationEntries,
|
|
3036
|
+
marketplaceEntries,
|
|
3037
|
+
displaySize,
|
|
3038
|
+
categories,
|
|
3039
|
+
resources,
|
|
3040
|
+
folderSize
|
|
3041
|
+
} = await loadSideBarContent(extensionId, extensionVersion, extensionUri, isBuiltin);
|
|
2993
3042
|
return {
|
|
2994
3043
|
...state,
|
|
2995
3044
|
badge,
|
|
@@ -3010,10 +3059,11 @@ const loadContent = async (state, platform, savedState) => {
|
|
|
3010
3059
|
iconSrc,
|
|
3011
3060
|
name,
|
|
3012
3061
|
readmeScrollTop,
|
|
3062
|
+
readmeUrl,
|
|
3013
3063
|
resources,
|
|
3064
|
+
scrollSource: Script,
|
|
3014
3065
|
scrollToTopButtonEnabled: true,
|
|
3015
3066
|
secondEntries: marketplaceEntries,
|
|
3016
|
-
scrollSource: Script,
|
|
3017
3067
|
selectedTab,
|
|
3018
3068
|
sizeOnDisk: size,
|
|
3019
3069
|
sizeValue,
|