@@ -21,6 +21,7 @@ interface ListedExtension {
2121const extensionEntries = _extensionEntries as Array <{
2222 chromeId? : string ;
2323 firefoxSlug? : string ;
24+ edgeId? : string ;
2425}>;
2526
2627const chromeIds = extensionEntries .flatMap ((e ) =>
@@ -31,8 +32,13 @@ const firefoxSlugs = [
3132 extensionEntries .flatMap ((e ) => (e .firefoxSlug ? [e .firefoxSlug ] : [])),
3233 ),
3334];
35+ const edgeIds = extensionEntries .flatMap ((e ) => (e .edgeId ? [e .edgeId ] : []));
3436
35- const { data, isLoading } = useListExtensionDetails (chromeIds , firefoxSlugs );
37+ const { data, isLoading } = useListExtensionDetails (
38+ chromeIds ,
39+ firefoxSlugs ,
40+ edgeIds ,
41+ );
3642
3743function addUtmSource(storeUrl : string ): string {
3844 const url = new URL (storeUrl );
@@ -49,6 +55,9 @@ const sortedExtensions = computed((): ListedExtension[] => {
4955 const firefoxBySlug = new Map (
5056 (data .value .firefox ?? []).filter (Boolean ).map ((e ) => [e .id , e ]),
5157 );
58+ const edgeById = new Map (
59+ (data .value .edge ?? []).filter (Boolean ).map ((e ) => [e .id , e ]),
60+ );
5261
5362 const results: ListedExtension [] = [];
5463
@@ -57,12 +66,14 @@ const sortedExtensions = computed((): ListedExtension[] => {
5766 const firefox = entry .firefoxSlug
5867 ? firefoxBySlug .get (entry .firefoxSlug )
5968 : undefined ;
69+ const edge = entry .edgeId ? edgeById .get (entry .edgeId ) : undefined ;
6070
61- if (! chrome && ! firefox ) continue ;
71+ if (! chrome && ! firefox && ! edge ) continue ;
6272
63- const primary = chrome ?? firefox ! ;
64- const users = (chrome ?.users ?? 0 ) + (firefox ?.users ?? 0 );
65- const rating = chrome ?.rating ?? firefox ?.rating ;
73+ const primary = chrome ?? firefox ?? edge ! ;
74+ const users =
75+ (chrome ?.users ?? 0 ) + (firefox ?.users ?? 0 ) + (edge ?.users ?? 0 );
76+ const rating = chrome ?.rating ?? firefox ?.rating ?? edge ?.rating ;
6677
6778 const stores: StoreLink [] = [];
6879 if (chrome ) {
@@ -71,9 +82,16 @@ const sortedExtensions = computed((): ListedExtension[] => {
7182 if (firefox ) {
7283 stores .push ({ label: ' Firefox' , url: addUtmSource (firefox .storeUrl ) });
7384 }
85+ if (edge ) {
86+ stores .push ({ label: ' Edge' , url: addUtmSource (edge .storeUrl ) });
87+ }
7488
7589 results .push ({
76- id: entry .chromeId ?? ` firefox:${entry .firefoxSlug } ` ,
90+ id:
91+ entry .chromeId ??
92+ (entry .firefoxSlug
93+ ? ` firefox:${entry .firefoxSlug } `
94+ : ` edge:${entry .edgeId } ` ),
7795 name: primary .name ,
7896 iconUrl: primary .iconUrl ,
7997 shortDescription: primary .shortDescription ,
0 commit comments