Skip to content

Commit a2db2a0

Browse files
committed
Allows Remotely Disabling Auto Tracker Banner
1 parent df66c75 commit a2db2a0

File tree

4 files changed

+28
-1
lines changed

4 files changed

+28
-1
lines changed

src/lib/bridge/handlers/handlers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {AnnotateOffer} from './annotate_offer';
1414
import {ExtensionVersion} from './extension_version';
1515
import {SendCookies} from './send_cookies';
1616
import {HasPermissions} from './has_permissions';
17+
import {MetaSettings} from './meta_settings';
1718

1819
export const HANDLERS_MAP: {[key in RequestType]: RequestHandler<any, any>} = {
1920
[RequestType.EXECUTE_SCRIPT_ON_PAGE]: ExecuteScriptOnPage,
@@ -30,4 +31,5 @@ export const HANDLERS_MAP: {[key in RequestType]: RequestHandler<any, any>} = {
3031
[RequestType.EXTENSION_VERSION]: ExtensionVersion,
3132
[RequestType.SEND_COOKIES]: SendCookies,
3233
[RequestType.HAS_PERMISSIONS]: HasPermissions,
34+
[RequestType.META_SETTINGS]: MetaSettings,
3335
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import {EmptyRequestHandler} from './main';
2+
import {RequestType} from './types';
3+
4+
export interface MetaSettingsResponse {
5+
enable_auto_trade: boolean;
6+
}
7+
8+
export const MetaSettings = new EmptyRequestHandler<MetaSettingsResponse>(RequestType.META_SETTINGS, async (req) => {
9+
const resp = await fetch(`https://csfloat.com/api/v1/meta/extension`, {
10+
credentials: 'include',
11+
});
12+
13+
if (resp.status !== 200) {
14+
throw new Error('invalid status');
15+
}
16+
17+
return resp.json() as Promise<MetaSettingsResponse>;
18+
});

src/lib/bridge/handlers/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ export enum RequestType {
1313
EXTENSION_VERSION,
1414
SEND_COOKIES,
1515
HAS_PERMISSIONS,
16+
META_SETTINGS,
1617
}

src/lib/components/trade_offers/auto_track.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {ClientSend} from '../../bridge/client';
77
import {state} from 'lit/decorators.js';
88
import {FetchPendingTrades} from '../../bridge/handlers/fetch_pending_trades';
99
import {HasPermissions} from '../../bridge/handlers/has_permissions';
10+
import {MetaSettings} from '../../bridge/handlers/meta_settings';
1011

1112
@CustomElement()
1213
@InjectAfter(
@@ -56,14 +57,19 @@ export class AutoTrackWidget extends FloatElement {
5657
super.connectedCallback();
5758

5859
try {
60+
const meta = await ClientSend(MetaSettings, {});
61+
if (!meta.enable_auto_trade) {
62+
return;
63+
}
64+
5965
await ClientSend(FetchPendingTrades, {});
6066

6167
const hasPermissions = await ClientSend(HasPermissions, {permissions: ['cookies', 'alarms']});
6268
if (!hasPermissions) {
6369
this.show = true;
6470
}
6571
} catch (e) {
66-
console.info('user is not logged into CSFloat');
72+
console.info('user is not logged into CSFloat or something went wrong');
6773
}
6874
}
6975

0 commit comments

Comments
 (0)