mirror of
https://git.vectorsigma.ru/public/tubearchivist.git
synced 2026-08-04 22:49:31 +00:00
* Add development docker-compose file * Add /new/ path in nginx conf * Add frontend production setup * Fix lint * Refac move prod docker compose into non suffixed file * Fix run.sh fileendings on windows * Fix docker file naming consistancies * Add frontend dev setup * Add docker compose dev command * Refac remove docker network * Fix potential error causes * Chore update react-router-dom * Add redirect to login after logout * Refac allow basic auth for session login in api * Fix loginresponsetype optional property * Refac move isAdmin check into page Base * Refac use node lts for dev container * Refac remove old setup in readme * Refac move getisAdmin into loader and rename * Refac remove manual csrf cookie handing from actions and loader * Fix post requiring csrf header & cookie * Fix remove empty files * Refac revert dockerfile changes * Refac revert gitatrributes changes * Refac revert docker changes * Refac revert nginx changes * Refac revert docker change * Refac move frontend into frontend folder * Add production steps to dockerfile * Refac implement endpoint renaming * Refac remove frontend dockerfile * Add credentials include for dev env * Fix allow cors with credentials for dev environment * Fix images in dev mode * Add credentials for dev mode to all loader and actions, except signin * Revert cors config * Revert cors config * Fix nginx not serving /youtube/ * Fix video url missing api * Fix media url missing api * Add application settings page * Add continue vids * Add csrf to delete requests * Refac use api/video endpoint with filter to home, channel, playlist pages * Add channel nav request * Add channel playlists * Fix filterbar for playlist in channel * Add playlist_nav to video page * Add downloads aggs * Refac remove basic auth * Fix credentials include in signin * Refac user config to user me config * Add ApiToken get
57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import { ColourVariants } from '../../configuration/colours/getColours';
|
|
import { SortByType, SortOrderType, ViewLayoutType } from '../../pages/Home';
|
|
import getApiUrl from '../../configuration/getApiUrl';
|
|
import defaultHeaders from '../../configuration/defaultHeaders';
|
|
import getCookie from '../../functions/getCookie';
|
|
import getFetchCredentials from '../../configuration/getFetchCredentials';
|
|
|
|
export type UserMeType = {
|
|
id: number;
|
|
name: string;
|
|
is_superuser: boolean;
|
|
is_staff: boolean;
|
|
groups: [];
|
|
user_permissions: [];
|
|
last_login: string;
|
|
config: UserConfigType;
|
|
};
|
|
|
|
export type UserConfigType = {
|
|
stylesheet?: ColourVariants;
|
|
page_size?: number;
|
|
sort_by?: SortByType;
|
|
sort_order?: SortOrderType;
|
|
view_style_home?: ViewLayoutType;
|
|
view_style_channel?: ViewLayoutType;
|
|
view_style_downloads?: ViewLayoutType;
|
|
view_style_playlist?: ViewLayoutType;
|
|
grid_items?: number;
|
|
hide_watched?: boolean;
|
|
show_ignored_only?: boolean;
|
|
show_subed_only?: boolean;
|
|
sponsorblock_id?: number;
|
|
};
|
|
|
|
const updateUserConfig = async (config: UserConfigType): Promise<UserMeType> => {
|
|
const apiUrl = getApiUrl();
|
|
const csrfCookie = getCookie('csrftoken');
|
|
|
|
const response = await fetch(`${apiUrl}/api/user/me/`, {
|
|
method: 'POST',
|
|
headers: {
|
|
...defaultHeaders,
|
|
'X-CSRFToken': csrfCookie || '',
|
|
},
|
|
credentials: getFetchCredentials(),
|
|
|
|
body: JSON.stringify({ config }),
|
|
});
|
|
|
|
const userConfig = await response.json();
|
|
console.log('updateUserConfig', userConfig);
|
|
|
|
return userConfig;
|
|
};
|
|
|
|
export default updateUserConfig;
|