diff --git a/src/__tests__/__snapshots__/storybook.test.ts.snap b/src/__tests__/__snapshots__/storybook.test.ts.snap index b3bbf6f3..ed293122 100644 --- a/src/__tests__/__snapshots__/storybook.test.ts.snap +++ b/src/__tests__/__snapshots__/storybook.test.ts.snap @@ -282,7 +282,8 @@ Array [ > Show all ( 3 - ) + ) + , @@ -292,7 +293,8 @@ Array [
- Some files or folders need to be renamed, because their name is invalid or you have not the permission to overwrite them + Some files or folders need to be renamed, because their name is invalid or you have not the permission to overwrite them +
- is made with <3 by + + is made with <3 by
) { fillRule="evenodd" d="M12 16a2 2 0 002-2V4.5L9.5 0H4a2 2 0 00-2 2v12a2 2 0 002 2h8zM3 2a1 1 0 011-1h5.5v2A1.5 1.5 0 0011 4.5h2V10l-2.083-2.083a.5.5 0 00-.76.063L8 11 5.835 9.7a.5.5 0 00-.611.076L3 12V2z" /> - + ); } @@ -199,8 +202,6 @@ export function FileEarmarkBinaryIcon(props: React.SVGProps) { ); } - - //--------------------------------------------------------------------\\ //--------------------------------------------------------------------\\ //--------------------------------------------------------------------\\ @@ -224,4 +225,4 @@ export function FolderIcon(props: React.SVGProps) { /> ); -} \ No newline at end of file +} diff --git a/src/background/api/api.ts b/src/background/api/api.ts index 61c51d51..7ad4f269 100644 --- a/src/background/api/api.ts +++ b/src/background/api/api.ts @@ -8,30 +8,30 @@ export const userPath: string = "/v1/users"; export const filesystemPath: string = "/v1/filesystem/"; enum DataIntegrity { - STABLE = "bg-success", - POSSIBLE_RISK = "bg-warning", - UNSTABLE = "bg-danger" + STABLE = "bg-success", + POSSIBLE_RISK = "bg-warning", + UNSTABLE = "bg-danger" } interface SystemHealthData { - uptimeInSeconds: number; - userCount: number; - dataIntegrity: string; - deployment: string; - usedStorageInBytes: number; - version: string; + uptimeInSeconds: number; + userCount: number; + dataIntegrity: string; + deployment: string; + usedStorageInBytes: number; + version: string; } function callBackendHealth(): Promise { - return new Promise((resolve, reject) => { - Axios.get(`${hostname}/health`) - .then((data) => { - resolve(data.data); - }) - .catch((error) => { - reject(error); - }); - }); + return new Promise((resolve, reject) => { + Axios.get(`${hostname}/health`) + .then((data) => { + resolve(data.data); + }) + .catch((error) => { + reject(error); + }); + }); } export { callBackendHealth, DataIntegrity }; diff --git a/src/background/api/auth.ts b/src/background/api/auth.ts index 2480bcce..c57887ed 100644 --- a/src/background/api/auth.ts +++ b/src/background/api/auth.ts @@ -1,14 +1,19 @@ -import Axios, {AxiosResponse} from "axios"; +import Axios, { AxiosResponse } from "axios"; -import {hostname, userPath} from "./api"; +import { hostname, userPath } from "./api"; -import {UserState} from "../redux/actions/userTypes"; +import { UserState } from "../redux/actions/userTypes"; import store from "../redux/store"; -import {addAccessToken, addRefreshToken, checkedCookies, removeTokens} from "../redux/actions/tokens"; -import {AccessToken, CookieStatus} from "../redux/actions/tokenTypes"; -import {deleteCookie, getCookie, setCookie} from "../methods/cookies"; -import {updateUser} from "../redux/actions/user"; -import {hashPassword} from "../methods/passwords"; +import { + addAccessToken, + addRefreshToken, + checkedCookies, + removeTokens +} from "../redux/actions/tokens"; +import { AccessToken, CookieStatus } from "../redux/actions/tokenTypes"; +import { deleteCookie, getCookie, setCookie } from "../methods/cookies"; +import { updateUser } from "../redux/actions/user"; +import { hashPassword } from "../methods/passwords"; // reference: https://daveceddia.com/access-redux-store-outside-react/ @@ -34,7 +39,6 @@ export const checkForCookie = () => { store.dispatch(addRefreshToken(refreshTokenCookieValue)); store.dispatch(checkedCookies(CookieStatus.LOADING)); getAccessTokenWithRefreshToken(); - }; export const loginWithUsernameAndPassword = async ( @@ -51,7 +55,10 @@ export const loginWithUsernameAndPassword = async ( } }; - return Axios.get(hostname + userPath + "/login", config) + return Axios.get( + hostname + userPath + "/login", + config + ) .then((data: AxiosResponse) => { console.log(data.data); store.dispatch(addRefreshToken(data.data.tokenValue)); diff --git a/src/background/api/filesystemTypes.ts b/src/background/api/filesystemTypes.ts index 86c83c96..e6fed5dc 100644 --- a/src/background/api/filesystemTypes.ts +++ b/src/background/api/filesystemTypes.ts @@ -1,31 +1,31 @@ export interface UsersSet { - groups: string[]; - id: number; - username: string; + groups: string[]; + id: number; + username: string; } export interface PermissionSet { - editableForGroups: string[]; - editableForUsers: UsersSet[]; - visibleForGroups: string[]; - visibleForUsers: UsersSet[]; + editableForGroups: string[]; + editableForUsers: UsersSet[]; + visibleForGroups: string[]; + visibleForUsers: UsersSet[]; } export interface User { - userId: number; - username: string; - groups: string[]; + userId: number; + username: string; + groups: string[]; } export interface FsEntity { - owner: User; - lastUpdatedBy: User; - fileSystemId: number; - lastUpdated: number; - name: string; - path: string; - shared: boolean; - size: number; - type: string; - mimeType:string; + owner: User; + lastUpdatedBy: User; + fileSystemId: number; + lastUpdated: number; + name: string; + path: string; + shared: boolean; + size: number; + type: string; + mimeType: string; } diff --git a/src/background/api/registration.ts b/src/background/api/registration.ts index 48b1fa01..46b7ee47 100644 --- a/src/background/api/registration.ts +++ b/src/background/api/registration.ts @@ -1,16 +1,19 @@ -import Axios, {AxiosError, AxiosResponse} from "axios"; -import {hostname, userPath} from "./api"; -import {hashPassword} from "../methods/passwords"; +import Axios, { AxiosError, AxiosResponse } from "axios"; +import { hostname, userPath } from "./api"; +import { hashPassword } from "../methods/passwords"; export interface IRegisterServerResponse { - httpStatus: number, - httpMessage: string - outputMessage?: string + httpStatus: number; + httpMessage: string; + outputMessage?: string; } -export const registerNewUser = async (username: string, password: string, passwordConfirmation: string): Promise => { - - if (password !== passwordConfirmation){ +export const registerNewUser = async ( + username: string, + password: string, + passwordConfirmation: string +): Promise => { + if (password !== passwordConfirmation) { throw new Error("Password did not match passwordConfirmation"); } let hashedPassword = await hashPassword(password); @@ -20,29 +23,28 @@ export const registerNewUser = async (username: string, password: string, passwo username: username, password: hashedPassword, confirmationPassword: hashedPassword - } - + }; - return Axios.post(hostname + userPath + '/register', newUser) + return Axios.post(hostname + userPath + "/register", newUser) .then((data: AxiosResponse) => { - console.log(data) + console.log(data); const response: IRegisterServerResponse = { httpStatus: data.status, httpMessage: data.statusText - } + }; if (data.status === 201) { - response.outputMessage = "User was successfully created." + response.outputMessage = "User was successfully created."; } resolve(response); }) .catch((error: AxiosError) => { - console.log(error.response) + console.log(error.response); const response: IRegisterServerResponse = { httpStatus: error.response!.status, httpMessage: error.response!.statusText, outputMessage: error.response!.data.message - } + }; reject(response); - }) - }) -} + }); + }); +}; diff --git a/src/background/methods/checkInput.ts b/src/background/methods/checkInput.ts index 6cef8b6e..8bb38c7c 100644 --- a/src/background/methods/checkInput.ts +++ b/src/background/methods/checkInput.ts @@ -1,7 +1,7 @@ export function notMinStrLength(text: string, minAnz: number): boolean { - return text.length < minAnz; + return text.length < minAnz; } export function biggerMaxStrLength(text: string, maxAnz: number): boolean { - return text.length > maxAnz; + return text.length > maxAnz; } diff --git a/src/background/methods/cookies.ts b/src/background/methods/cookies.ts index ecb7c139..05365803 100644 --- a/src/background/methods/cookies.ts +++ b/src/background/methods/cookies.ts @@ -1,10 +1,10 @@ -export function getCookie(cname:string) { +export function getCookie(cname: string) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); - let ca = decodedCookie.split(';'); - for(let i = 0; i (obj: O, key: keyof any): key is keyof O { - return key in obj + return key in obj; } diff --git a/src/background/methods/dataTypes/objects/objectEquals.ts b/src/background/methods/dataTypes/objects/objectEquals.ts index 9d467018..5f0c8826 100644 --- a/src/background/methods/dataTypes/objects/objectEquals.ts +++ b/src/background/methods/dataTypes/objects/objectEquals.ts @@ -1,8 +1,9 @@ -function objectEquals(object1:object|any, object2:object|any):boolean { +function objectEquals(object1: object | any, object2: object | any): boolean { let areEqual = true; //keylength - if (Object.keys(object1).length === Object.keys(object2).length) return false; + if (Object.keys(object1).length === Object.keys(object2).length) + return false; //compare keys Object.keys(object1).forEach((key) => { @@ -14,4 +15,4 @@ function objectEquals(object1:object|any, object2:object|any):boolean { return areEqual; } -export default objectEquals; \ No newline at end of file +export default objectEquals; diff --git a/src/background/methods/dataTypes/strings.ts b/src/background/methods/dataTypes/strings.ts index 20bf69d3..d5a48c67 100644 --- a/src/background/methods/dataTypes/strings.ts +++ b/src/background/methods/dataTypes/strings.ts @@ -1,11 +1,13 @@ -export function reverseString(string:string):string { - if (string === "") - return ""; - else - return reverseString(string.substr(1)) + string.charAt(0); +export function reverseString(string: string): string { + if (string === "") return ""; + else return reverseString(string.substr(1)) + string.charAt(0); } -export function stringReplaceSubstringOneTimeFromBeginningAndEnd(string:string, substring:string, replaceWith:string):string { +export function stringReplaceSubstringOneTimeFromBeginningAndEnd( + string: string, + substring: string, + replaceWith: string +): string { string = string.replace(substring, replaceWith); string = reverseString(string); string = string.replace(substring, replaceWith); @@ -13,14 +15,17 @@ export function stringReplaceSubstringOneTimeFromBeginningAndEnd(string:string, return string; } -export function deleteSpaces(string:string):string { - return string.replace(/\s/,"") +export function deleteSpaces(string: string): string { + return string.replace(/\s/, ""); } -export function trimString(string:string, maxLength: number):string { - return string.length > maxLength ? string.substr(0, maxLength-1) : string; +export function trimString(string: string, maxLength: number): string { + return string.length > maxLength ? string.substr(0, maxLength - 1) : string; } -export function trimStringWithDotsAtEnd(string:string, maxLength: number):string { - return trimString(string, maxLength) + '…'; -} \ No newline at end of file +export function trimStringWithDotsAtEnd( + string: string, + maxLength: number +): string { + return trimString(string, maxLength) + "…"; +} diff --git a/src/background/methods/dataTypes/time.ts b/src/background/methods/dataTypes/time.ts index c69ab475..24dd4738 100644 --- a/src/background/methods/dataTypes/time.ts +++ b/src/background/methods/dataTypes/time.ts @@ -18,8 +18,8 @@ function getDateAsStringFromTimestamp(ts: number): string { function getDurationAsString(duration: number): string { // props to https://stackoverflow.com/questions/36098913/convert-seconds-to-days-hours-minutes-and-seconds let d = Math.floor(duration / (3600 * 24)); - let h = Math.floor(duration % (3600 * 24) / 3600); - let m = Math.floor(duration % 3600 / 60); + let h = Math.floor((duration % (3600 * 24)) / 3600); + let m = Math.floor((duration % 3600) / 60); let s = Math.floor(duration % 60); let dDisplay = d > 0 ? d + (d === 1 ? " day, " : " days, ") : ""; @@ -29,4 +29,9 @@ function getDurationAsString(duration: number): string { return dDisplay + hDisplay + mDisplay + sDisplay; } -export { getTimeStamp, getDateAsStringFromTimestamp, getTimeStampFromDate, getDurationAsString }; \ No newline at end of file +export { + getTimeStamp, + getDateAsStringFromTimestamp, + getTimeStampFromDate, + getDurationAsString +}; diff --git a/src/background/methods/grammar/germanGrammar.ts b/src/background/methods/grammar/germanGrammar.ts index 53806938..96910929 100644 --- a/src/background/methods/grammar/germanGrammar.ts +++ b/src/background/methods/grammar/germanGrammar.ts @@ -1,14 +1,14 @@ -function genitiveOfWord(name:string):string { +function genitiveOfWord(name: string): string { // checks if "s" can be used for name's plural or if an apostrophe has to be used let lastLetter = name[name.length - 1]; let lastTwoLetters = name.substr(name.length - 2, 2).toLowerCase(); - return ( - lastLetter === 's' - || lastLetter === 'ß' - || lastLetter === 'z' - || lastLetter === 'x' - || lastTwoLetters === "ce" - ) ? (name + "'") : (name + "s"); + return lastLetter === "s" || + lastLetter === "ß" || + lastLetter === "z" || + lastLetter === "x" || + lastTwoLetters === "ce" + ? name + "'" + : name + "s"; } -export {genitiveOfWord} \ No newline at end of file +export { genitiveOfWord }; diff --git a/src/background/methods/passwords.ts b/src/background/methods/passwords.ts index 94f65d88..9cebb4c5 100644 --- a/src/background/methods/passwords.ts +++ b/src/background/methods/passwords.ts @@ -1,12 +1,15 @@ //see: https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest async function hashPassword(password: string) { - const msgUint8 = new TextEncoder().encode(password + "FileFighterWithSomeSalt"); // encode as (utf-8) Uint8Array - const hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8); // hash the message - const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array - const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); // convert bytes to hex string + const msgUint8 = new TextEncoder().encode( + password + "FileFighterWithSomeSalt" + ); // encode as (utf-8) Uint8Array + const hashBuffer = await crypto.subtle.digest("SHA-256", msgUint8); // hash the message + const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array + const hashHex = hashArray + .map((b) => b.toString(16).padStart(2, "0")) + .join(""); // convert bytes to hex string return hashHex.toUpperCase(); } -export {hashPassword} - +export { hashPassword }; diff --git a/src/background/methods/redirect.ts b/src/background/methods/redirect.ts index 00d17183..b67eca15 100644 --- a/src/background/methods/redirect.ts +++ b/src/background/methods/redirect.ts @@ -1,16 +1,24 @@ -const scrollToElement = (history: { push: (path:string) => void; }, id: string, event?: { preventDefault: () => void; }): void => { +const scrollToElement = ( + history: { push: (path: string) => void }, + id: string, + event?: { preventDefault: () => void } +): void => { //Replaces anchor for React - console.log("Scrolled to " + id) + console.log("Scrolled to " + id); event?.preventDefault(); if (id) { - const element = document.getElementById(id) - element?.scrollIntoView() + const element = document.getElementById(id); + element?.scrollIntoView(); } }; -const redirect = (history:{ push: (path:string) => void; } , path: string, event?: { preventDefault: () => void; }): void => { - console.log("Redirected to " + path) +const redirect = ( + history: { push: (path: string) => void }, + path: string, + event?: { preventDefault: () => void } +): void => { + console.log("Redirected to " + path); event?.preventDefault(); if (path !== window.location.pathname) history.push(path); }; -export {redirect, scrollToElement} \ No newline at end of file +export { redirect, scrollToElement }; diff --git a/src/background/methods/sound.js b/src/background/methods/sound.js index c5a62fbd..6fd67cfb 100644 --- a/src/background/methods/sound.js +++ b/src/background/methods/sound.js @@ -19,4 +19,4 @@ function audioOnOff(audioID) { } } -export { pauseAudioByID, playAudioByID, setAudioVolumeByID, audioOnOff }; \ No newline at end of file +export { pauseAudioByID, playAudioByID, setAudioVolumeByID, audioOnOff }; diff --git a/src/background/methods/style.js b/src/background/methods/style.js index 0287f6d3..2b6f3c08 100644 --- a/src/background/methods/style.js +++ b/src/background/methods/style.js @@ -2,7 +2,9 @@ export function getStyleValue(element, strCssRule) { //https://stackoverflow.com/questions/5227909/how-to-get-an-elements-padding-value-using-javascript let strValue = ""; if (document.defaultView && document.defaultView.getComputedStyle) { - strValue = document.defaultView.getComputedStyle(element, "").getPropertyValue(strCssRule); + strValue = document.defaultView + .getComputedStyle(element, "") + .getPropertyValue(strCssRule); } else if (element.currentStyle) { strCssRule = strCssRule.replace(/(\w)/g, function (strMatch, p1) { return p1.toUpperCase(); @@ -10,4 +12,4 @@ export function getStyleValue(element, strCssRule) { strValue = element.currentStyle[strCssRule]; } return strValue; -} \ No newline at end of file +} diff --git a/src/background/methods/windowSize.ts b/src/background/methods/windowSize.ts index 0c93e6cc..4b8c508c 100644 --- a/src/background/methods/windowSize.ts +++ b/src/background/methods/windowSize.ts @@ -1,35 +1,34 @@ export interface getWindowSize_Interface { - viewportWidth: number, - viewportHeight: number + viewportWidth: number; + viewportHeight: number; } -export function getWindowSize():getWindowSize_Interface { +export function getWindowSize(): getWindowSize_Interface { + let viewportwidth: number; + let viewportheight: number; - let viewportwidth:number; - let viewportheight:number; + // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight -// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight - - if (typeof window.innerWidth != 'undefined') { - viewportwidth = window.innerWidth - viewportheight = window.innerHeight + if (typeof window.innerWidth != "undefined") { + viewportwidth = window.innerWidth; + viewportheight = window.innerHeight; } -// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document) - - else if (typeof document.documentElement != 'undefined' && - typeof document.documentElement.clientWidth != ('undefined' || 0)){ - viewportwidth = document.documentElement.clientWidth - viewportheight = document.documentElement.clientHeight + // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document) + else if ( + typeof document.documentElement != "undefined" && + typeof document.documentElement.clientWidth != ("undefined" || 0) + ) { + viewportwidth = document.documentElement.clientWidth; + viewportheight = document.documentElement.clientHeight; } -// older versions of IE - + // older versions of IE else { - viewportwidth = document.getElementsByTagName('body')[0].clientWidth - viewportheight = document.getElementsByTagName('body')[0].clientHeight + viewportwidth = document.getElementsByTagName("body")[0].clientWidth; + viewportheight = document.getElementsByTagName("body")[0].clientHeight; } return { viewportHeight: viewportheight, viewportWidth: viewportwidth - } -} \ No newline at end of file + }; +} diff --git a/src/background/redux/actions/apiActions.ts b/src/background/redux/actions/apiActions.ts index 64c919a3..aa4e211d 100644 --- a/src/background/redux/actions/apiActions.ts +++ b/src/background/redux/actions/apiActions.ts @@ -8,27 +8,26 @@ import { NEXT_FS_ENTITY, NextFsEntity, NextFsEntityPayload, - REPLACE_API_ACTION, ReplaceApiAction + REPLACE_API_ACTION, + ReplaceApiAction } from "./apiActionsTypes"; - -export const addApiAction = (content: ApiAction): AddApiAction =>({ +export const addApiAction = (content: ApiAction): AddApiAction => ({ type: ADD_API_ACTION, - payload: content, -}) + payload: content +}); -export const replaceApiAction = (content: ApiAction): ReplaceApiAction =>({ +export const replaceApiAction = (content: ApiAction): ReplaceApiAction => ({ type: REPLACE_API_ACTION, - payload: content, -}) + payload: content +}); -export const changeStatus = (content: ChangeStatusPayload) : ChangeStatus =>({ +export const changeStatus = (content: ChangeStatusPayload): ChangeStatus => ({ type: CHANGE_STATUS, - payload: content, -}) - + payload: content +}); -export const nextFsEntity = (content: NextFsEntityPayload) : NextFsEntity=>({ +export const nextFsEntity = (content: NextFsEntityPayload): NextFsEntity => ({ type: NEXT_FS_ENTITY, payload: content -}) +}); diff --git a/src/background/redux/actions/apiActionsTypes.ts b/src/background/redux/actions/apiActionsTypes.ts index d48f6350..fedfecb6 100644 --- a/src/background/redux/actions/apiActionsTypes.ts +++ b/src/background/redux/actions/apiActionsTypes.ts @@ -6,64 +6,64 @@ export const CHANGE_STATUS = "CHANGE_STATUS"; export const NEXT_FS_ENTITY = "NEXT_FS_ENTITY"; export interface ApiActionsState { - actions: ApiAction[]; + actions: ApiAction[]; } export interface ApiAction { - key: string; - timestamp: number; - type: ApiActionType; - status: ApiActionStatus; - progress: number; - totalAmount: number; - currentFsEntity: FsEntity | File; - error?: string; + key: string; + timestamp: number; + type: ApiActionType; + status: ApiActionStatus; + progress: number; + totalAmount: number; + currentFsEntity: FsEntity | File; + error?: string; } export enum ApiActionType { - UPLOAD = "Uploading", - DELETE = "Deleting" + UPLOAD = "Uploading", + DELETE = "Deleting" } export enum ApiActionStatus { - ONGOING = "Ongoing", - ABORTED = "Aborted", - ERROR = "Error", - FINISHED = "Finished" + ONGOING = "Ongoing", + ABORTED = "Aborted", + ERROR = "Error", + FINISHED = "Finished" } export interface AddApiAction { - type: typeof ADD_API_ACTION; - payload: ApiAction; + type: typeof ADD_API_ACTION; + payload: ApiAction; } export interface ReplaceApiAction { - type: typeof REPLACE_API_ACTION; - payload: ApiAction; + type: typeof REPLACE_API_ACTION; + payload: ApiAction; } export interface ChangeStatusPayload { - key: string; - status: ApiActionStatus; - error?: string; + key: string; + status: ApiActionStatus; + error?: string; } export interface ChangeStatus { - type: typeof CHANGE_STATUS; - payload: ChangeStatusPayload; + type: typeof CHANGE_STATUS; + payload: ChangeStatusPayload; } export interface NextFsEntityPayload { - key: string; - currentFsEntity: FsEntity | File; + key: string; + currentFsEntity: FsEntity | File; } export interface NextFsEntity { - type: typeof NEXT_FS_ENTITY; - payload: NextFsEntityPayload; + type: typeof NEXT_FS_ENTITY; + payload: NextFsEntityPayload; } export type ApiActionsTypes = - | ChangeStatus - | ReplaceApiAction - | AddApiAction - | NextFsEntity; + | ChangeStatus + | ReplaceApiAction + | AddApiAction + | NextFsEntity; diff --git a/src/background/redux/actions/filesystem.ts b/src/background/redux/actions/filesystem.ts index 2b5b6704..f75f59f4 100644 --- a/src/background/redux/actions/filesystem.ts +++ b/src/background/redux/actions/filesystem.ts @@ -1,63 +1,65 @@ import { FsEntity } from "../../api/filesystemTypes"; import { - ADD_TO_CONTENTS, - ADD_TO_SELECTED, - AddToContents, - AddToSelected, - CLEAR_SELECTED, - ClearSelected, - REMOVE_FROM_CONTENTS, - REMOVE_FROM_SELECTED, - RemoveFromContents, - RemoveFromSelected, - REPLACE_SELECTED, - ReplaceSelected, - SET_CONTENTS, - SET_CURRENT_FSITEMID, SET_CURRENT_PATH, - SetContents, - SetCurrentFsItemId, SetCurrentPath + ADD_TO_CONTENTS, + ADD_TO_SELECTED, + AddToContents, + AddToSelected, + CLEAR_SELECTED, + ClearSelected, + REMOVE_FROM_CONTENTS, + REMOVE_FROM_SELECTED, + RemoveFromContents, + RemoveFromSelected, + REPLACE_SELECTED, + ReplaceSelected, + SET_CONTENTS, + SET_CURRENT_FSITEMID, + SET_CURRENT_PATH, + SetContents, + SetCurrentFsItemId, + SetCurrentPath } from "./filesystemTypes"; export const addToSelected = (content: FsEntity): AddToSelected => ({ - type: ADD_TO_SELECTED, - payload: content + type: ADD_TO_SELECTED, + payload: content }); export const removeFromSelected = (content: FsEntity): RemoveFromSelected => ({ - type: REMOVE_FROM_SELECTED, - payload: content + type: REMOVE_FROM_SELECTED, + payload: content }); export const clearSelected = (): ClearSelected => ({ - type: CLEAR_SELECTED + type: CLEAR_SELECTED }); export const replaceSelected = (content: FsEntity[]): ReplaceSelected => ({ - type: REPLACE_SELECTED, - payload: content + type: REPLACE_SELECTED, + payload: content }); export const setContents = (content: FsEntity[]): SetContents => ({ - type: SET_CONTENTS, - payload: content + type: SET_CONTENTS, + payload: content }); export const addToContents = (content: FsEntity): AddToContents => ({ - type: ADD_TO_CONTENTS, - payload: content + type: ADD_TO_CONTENTS, + payload: content }); export const removeFromContents = (content: FsEntity): RemoveFromContents => ({ - type: REMOVE_FROM_CONTENTS, - payload: content + type: REMOVE_FROM_CONTENTS, + payload: content }); export const setCurrentFsItemId = (content: string): SetCurrentFsItemId => ({ - type: SET_CURRENT_FSITEMID, - payload: content + type: SET_CURRENT_FSITEMID, + payload: content }); export const setCurrentPath = (content: string): SetCurrentPath => ({ - type: SET_CURRENT_PATH, - payload: content + type: SET_CURRENT_PATH, + payload: content }); diff --git a/src/background/redux/actions/filesystemTypes.ts b/src/background/redux/actions/filesystemTypes.ts index 57e5d2f4..762b40c0 100644 --- a/src/background/redux/actions/filesystemTypes.ts +++ b/src/background/redux/actions/filesystemTypes.ts @@ -11,60 +11,60 @@ export const ADD_TO_CONTENTS = "ADD_TO_CONTENTS"; export const REMOVE_FROM_CONTENTS = "REMOVE_FROM_CONTENTS"; export interface FilesystemState { - selectedFsEntities: FsEntity[]; - folderContents: FsEntity[]; - currentFsItemId: string; - currentPath: string + selectedFsEntities: FsEntity[]; + folderContents: FsEntity[]; + currentFsItemId: string; + currentPath: string; } export interface AddToSelected { - type: typeof ADD_TO_SELECTED; - payload: FsEntity; + type: typeof ADD_TO_SELECTED; + payload: FsEntity; } export interface RemoveFromSelected { - type: typeof REMOVE_FROM_SELECTED; - payload: FsEntity; + type: typeof REMOVE_FROM_SELECTED; + payload: FsEntity; } export interface ClearSelected { - type: typeof CLEAR_SELECTED; + type: typeof CLEAR_SELECTED; } export interface ReplaceSelected { - type: typeof REPLACE_SELECTED; - payload: FsEntity[]; + type: typeof REPLACE_SELECTED; + payload: FsEntity[]; } export interface SetCurrentFsItemId { - type: typeof SET_CURRENT_FSITEMID; - payload: string; + type: typeof SET_CURRENT_FSITEMID; + payload: string; } export interface SetCurrentPath { - type: typeof SET_CURRENT_PATH; - payload: string; + type: typeof SET_CURRENT_PATH; + payload: string; } export interface SetContents { - type: typeof SET_CONTENTS; - payload: FsEntity[]; + type: typeof SET_CONTENTS; + payload: FsEntity[]; } export interface AddToContents { - type: typeof ADD_TO_CONTENTS; - payload: FsEntity; + type: typeof ADD_TO_CONTENTS; + payload: FsEntity; } export interface RemoveFromContents { - type: typeof REMOVE_FROM_CONTENTS; - payload: FsEntity; + type: typeof REMOVE_FROM_CONTENTS; + payload: FsEntity; } export type FilesystemActionTypes = - | AddToSelected - | RemoveFromSelected - | ClearSelected - | ReplaceSelected - | SetContents - | AddToContents - | RemoveFromContents - | SetCurrentFsItemId - | SetCurrentPath; + | AddToSelected + | RemoveFromSelected + | ClearSelected + | ReplaceSelected + | SetContents + | AddToContents + | RemoveFromContents + | SetCurrentFsItemId + | SetCurrentPath; diff --git a/src/background/redux/actions/sytemState.tsx b/src/background/redux/actions/sytemState.tsx index 4972b94e..3f52644b 100644 --- a/src/background/redux/actions/sytemState.tsx +++ b/src/background/redux/actions/sytemState.tsx @@ -3,7 +3,7 @@ import { UserState } from "./userTypes"; import { FilesystemState } from "./filesystemTypes"; export interface SystemState { - tokens: TokensState; - user: UserState; - filesystem: FilesystemState; + tokens: TokensState; + user: UserState; + filesystem: FilesystemState; } diff --git a/src/background/redux/actions/tokenTypes.tsx b/src/background/redux/actions/tokenTypes.tsx index d405b440..8f384dfc 100644 --- a/src/background/redux/actions/tokenTypes.tsx +++ b/src/background/redux/actions/tokenTypes.tsx @@ -4,43 +4,43 @@ export const CHECKED_COOKIES = "CHECKED_COOKIES"; export const REMOVE_TOKENS = "REMOVE_TOKENS"; export interface AccessToken { - token: string | null; - timestamp: number | null; + token: string | null; + timestamp: number | null; } export enum CookieStatus { - NOT_STARTED, - LOADING, - FINISHED + NOT_STARTED, + LOADING, + FINISHED } export interface TokensState { - refreshToken: string | null; - accessToken: AccessToken | null; - checkedCookies: number; + refreshToken: string | null; + accessToken: AccessToken | null; + checkedCookies: number; } export interface AddRefreshToken { - type: typeof ADD_REFRESH_TOKEN; - payload: string; + type: typeof ADD_REFRESH_TOKEN; + payload: string; } export interface AddAccessToken { - type: typeof ADD_ACCESS_TOKEN; - payload: AccessToken; + type: typeof ADD_ACCESS_TOKEN; + payload: AccessToken; } export interface RemoveTokens { - type: typeof REMOVE_TOKENS; + type: typeof REMOVE_TOKENS; } export interface CheckedCookies { - type: typeof CHECKED_COOKIES; - payload: CookieStatus; + type: typeof CHECKED_COOKIES; + payload: CookieStatus; } export type TokenActionsTypes = - | AddRefreshToken - | AddAccessToken - | RemoveTokens - | CheckedCookies; + | AddRefreshToken + | AddAccessToken + | RemoveTokens + | CheckedCookies; diff --git a/src/background/redux/actions/tokens.tsx b/src/background/redux/actions/tokens.tsx index 6c3192b0..6947797a 100644 --- a/src/background/redux/actions/tokens.tsx +++ b/src/background/redux/actions/tokens.tsx @@ -1,31 +1,31 @@ import { - AccessToken, - ADD_ACCESS_TOKEN, - ADD_REFRESH_TOKEN, - AddAccessToken, - AddRefreshToken, - CHECKED_COOKIES, - CheckedCookies, - CookieStatus, - REMOVE_TOKENS, - RemoveTokens + AccessToken, + ADD_ACCESS_TOKEN, + ADD_REFRESH_TOKEN, + AddAccessToken, + AddRefreshToken, + CHECKED_COOKIES, + CheckedCookies, + CookieStatus, + REMOVE_TOKENS, + RemoveTokens } from "./tokenTypes"; export const addRefreshToken = (content: string): AddRefreshToken => ({ - type: ADD_REFRESH_TOKEN, - payload: content + type: ADD_REFRESH_TOKEN, + payload: content }); export const addAccessToken = (content: AccessToken): AddAccessToken => ({ - type: ADD_ACCESS_TOKEN, - payload: content + type: ADD_ACCESS_TOKEN, + payload: content }); export const removeTokens = (): RemoveTokens => ({ - type: REMOVE_TOKENS + type: REMOVE_TOKENS }); export const checkedCookies = (content: CookieStatus): CheckedCookies => ({ - type: CHECKED_COOKIES, - payload: content + type: CHECKED_COOKIES, + payload: content }); diff --git a/src/background/redux/actions/user.tsx b/src/background/redux/actions/user.tsx index 010d130a..e2e72002 100644 --- a/src/background/redux/actions/user.tsx +++ b/src/background/redux/actions/user.tsx @@ -1,6 +1,6 @@ -import {UPDATE_USER, UpdateUser, UserState} from "./userTypes"; +import { UPDATE_USER, UpdateUser, UserState } from "./userTypes"; -export const updateUser = (content: UserState):UpdateUser => ({ +export const updateUser = (content: UserState): UpdateUser => ({ type: UPDATE_USER, payload: content -}) +}); diff --git a/src/background/redux/reducers/apiActions.ts b/src/background/redux/reducers/apiActions.ts index 6b243ba8..680f4376 100644 --- a/src/background/redux/reducers/apiActions.ts +++ b/src/background/redux/reducers/apiActions.ts @@ -1,76 +1,76 @@ import { - ADD_API_ACTION, - ApiAction, - ApiActionsState, - ApiActionsTypes, - CHANGE_STATUS, - NEXT_FS_ENTITY, - REPLACE_API_ACTION + ADD_API_ACTION, + ApiAction, + ApiActionsState, + ApiActionsTypes, + CHANGE_STATUS, + NEXT_FS_ENTITY, + REPLACE_API_ACTION } from "../actions/apiActionsTypes"; const initialState: ApiActionsState = { - actions: [] + actions: [] }; export default function apiActions( - state = initialState, - action: ApiActionsTypes + state = initialState, + action: ApiActionsTypes ) { - switch (action.type) { - case ADD_API_ACTION: { - return { - actions: [...state.actions, action.payload] - }; - } - case REPLACE_API_ACTION: { - return { - actions: [ - ...state.actions.filter( - (a: ApiAction) => a.key !== action.payload.key - ), - action.payload - ] - }; - } - case CHANGE_STATUS: { - let actionToChange = state.actions.find( - (a: ApiAction) => a.key === action.payload.key - ); - console.log(actionToChange); - console.log(action.payload); - if (actionToChange) { - actionToChange.status = action.payload.status; - actionToChange.error = action.payload.error; - return { - actions: [ - ...state.actions.filter( - (a: ApiAction) => a.key !== action.payload.key - ), - actionToChange - ] - }; - } else return state; - } - case NEXT_FS_ENTITY: { - let actionToChange = state.actions.find( - (a: ApiAction) => a.key === action.payload.key - ); - console.log("[Reducer ApiAction] new progress", actionToChange); - if (actionToChange) { - actionToChange.currentFsEntity = action.payload.currentFsEntity; - actionToChange.progress = actionToChange.progress + 1; + switch (action.type) { + case ADD_API_ACTION: { + return { + actions: [...state.actions, action.payload] + }; + } + case REPLACE_API_ACTION: { + return { + actions: [ + ...state.actions.filter( + (a: ApiAction) => a.key !== action.payload.key + ), + action.payload + ] + }; + } + case CHANGE_STATUS: { + let actionToChange = state.actions.find( + (a: ApiAction) => a.key === action.payload.key + ); + console.log(actionToChange); + console.log(action.payload); + if (actionToChange) { + actionToChange.status = action.payload.status; + actionToChange.error = action.payload.error; + return { + actions: [ + ...state.actions.filter( + (a: ApiAction) => a.key !== action.payload.key + ), + actionToChange + ] + }; + } else return state; + } + case NEXT_FS_ENTITY: { + let actionToChange = state.actions.find( + (a: ApiAction) => a.key === action.payload.key + ); + console.log("[Reducer ApiAction] new progress", actionToChange); + if (actionToChange) { + actionToChange.currentFsEntity = action.payload.currentFsEntity; + actionToChange.progress = actionToChange.progress + 1; - return { - actions: [ - ...state.actions.filter( - (a: ApiAction) => a.key !== action.payload.key - ), - actionToChange - ] - }; - } else return state; + return { + actions: [ + ...state.actions.filter( + (a: ApiAction) => a.key !== action.payload.key + ), + actionToChange + ] + }; + } else return state; + } + default: + return state; } - default: - return state; - } } diff --git a/src/background/redux/reducers/filesystem.ts b/src/background/redux/reducers/filesystem.ts index e166386a..1a6d3d6b 100644 --- a/src/background/redux/reducers/filesystem.ts +++ b/src/background/redux/reducers/filesystem.ts @@ -11,7 +11,7 @@ import { SET_CURRENT_FSITEMID, SET_CURRENT_PATH } from "../actions/filesystemTypes"; -import {FsEntity} from "../../api/filesystemTypes"; +import { FsEntity } from "../../api/filesystemTypes"; const initialState: FilesystemState = { selectedFsEntities: [], @@ -28,7 +28,10 @@ export default function filesystem( case ADD_TO_SELECTED: { console.log("[REDUX] ADD_TO_SELECTED", action.payload); return { - selectedFsEntities: [...state.selectedFsEntities, action.payload], //concat because it does not modify the original array + selectedFsEntities: [ + ...state.selectedFsEntities, + action.payload + ], //concat because it does not modify the original array folderContents: state.folderContents, currentFsItemId: state.currentFsItemId, currentPath: state.currentPath @@ -37,7 +40,8 @@ export default function filesystem( case REMOVE_FROM_SELECTED: { return { selectedFsEntities: state.selectedFsEntities.filter( - (e: FsEntity) => e.fileSystemId !== action.payload.fileSystemId + (e: FsEntity) => + e.fileSystemId !== action.payload.fileSystemId ), //filter return a new array folderContents: state.folderContents, currentFsItemId: state.currentFsItemId, @@ -45,7 +49,7 @@ export default function filesystem( }; } case CLEAR_SELECTED: { - console.log("Clear Selected") + console.log("Clear Selected"); return { selectedFsEntities: [], folderContents: state.folderContents, @@ -54,7 +58,7 @@ export default function filesystem( }; } case REPLACE_SELECTED: { - console.log("Replace Selected") + console.log("Replace Selected"); return { selectedFsEntities: action.payload, folderContents: state.folderContents, @@ -73,7 +77,12 @@ export default function filesystem( case ADD_TO_CONTENTS: { return { selectedFsEntities: state.selectedFsEntities, - folderContents: [...state.folderContents.filter((fsEntity: FsEntity) => dontReplaceFsEntity(fsEntity, action.payload)), action.payload], + folderContents: [ + ...state.folderContents.filter((fsEntity: FsEntity) => + dontReplaceFsEntity(fsEntity, action.payload) + ), + action.payload + ], currentFsItemId: state.currentFsItemId, currentPath: state.currentPath }; @@ -82,7 +91,8 @@ export default function filesystem( return { selectedFsEntities: state.selectedFsEntities, folderContents: state.folderContents.filter( - (fse: FsEntity) => fse.fileSystemId !== action.payload.fileSystemId + (fse: FsEntity) => + fse.fileSystemId !== action.payload.fileSystemId ), currentFsItemId: state.currentFsItemId, currentPath: state.currentPath @@ -108,6 +118,12 @@ export default function filesystem( return state; } } -const dontReplaceFsEntity = (existingFsEntity: FsEntity, newFsEntity: FsEntity): boolean => { - return existingFsEntity.fileSystemId !== newFsEntity.fileSystemId && existingFsEntity.path !== newFsEntity.path; -} +const dontReplaceFsEntity = ( + existingFsEntity: FsEntity, + newFsEntity: FsEntity +): boolean => { + return ( + existingFsEntity.fileSystemId !== newFsEntity.fileSystemId && + existingFsEntity.path !== newFsEntity.path + ); +}; diff --git a/src/background/redux/reducers/tokens.tsx b/src/background/redux/reducers/tokens.tsx index 4ed123df..15d835b1 100644 --- a/src/background/redux/reducers/tokens.tsx +++ b/src/background/redux/reducers/tokens.tsx @@ -1,58 +1,58 @@ import { - AccessToken, - ADD_ACCESS_TOKEN, - ADD_REFRESH_TOKEN, - CHECKED_COOKIES, - CookieStatus, - REMOVE_TOKENS, - TokenActionsTypes, - TokensState + AccessToken, + ADD_ACCESS_TOKEN, + ADD_REFRESH_TOKEN, + CHECKED_COOKIES, + CookieStatus, + REMOVE_TOKENS, + TokenActionsTypes, + TokensState } from "../actions/tokenTypes"; const initialState: TokensState = { - refreshToken: null, - accessToken: null, - checkedCookies: CookieStatus.NOT_STARTED + refreshToken: null, + accessToken: null, + checkedCookies: CookieStatus.NOT_STARTED }; export default function tokens( - state = initialState, - action: TokenActionsTypes + state = initialState, + action: TokenActionsTypes ) { - switch (action.type) { - case ADD_REFRESH_TOKEN: { - console.log("[Redux] adding refreshToken"); - const refreshToken: string = action.payload; - return { - refreshToken: refreshToken, - accessToken: state.accessToken, - checkedCookies: state.checkedCookies - }; + switch (action.type) { + case ADD_REFRESH_TOKEN: { + console.log("[Redux] adding refreshToken"); + const refreshToken: string = action.payload; + return { + refreshToken: refreshToken, + accessToken: state.accessToken, + checkedCookies: state.checkedCookies + }; + } + case ADD_ACCESS_TOKEN: { + console.log("[Redux] adding accessToken"); + const accessToken: AccessToken = action.payload; + return { + refreshToken: state.refreshToken, + accessToken: accessToken, + checkedCookies: state.checkedCookies + }; + } + case REMOVE_TOKENS: { + return { + refreshToken: null, + accessToken: null, + checkedCookies: state.checkedCookies + }; + } + case CHECKED_COOKIES: { + return { + refreshToken: state.refreshToken, + accessToken: state.accessToken, + checkedCookies: action.payload + }; + } + default: + return state; } - case ADD_ACCESS_TOKEN: { - console.log("[Redux] adding accessToken"); - const accessToken: AccessToken = action.payload; - return { - refreshToken: state.refreshToken, - accessToken: accessToken, - checkedCookies: state.checkedCookies - }; - } - case REMOVE_TOKENS: { - return { - refreshToken: null, - accessToken: null, - checkedCookies: state.checkedCookies - }; - } - case CHECKED_COOKIES: { - return { - refreshToken: state.refreshToken, - accessToken: state.accessToken, - checkedCookies: action.payload - }; - } - default: - return state; - } } diff --git a/src/background/redux/reducers/user.tsx b/src/background/redux/reducers/user.tsx index 63e17dae..24bea8b6 100644 --- a/src/background/redux/reducers/user.tsx +++ b/src/background/redux/reducers/user.tsx @@ -1,4 +1,4 @@ -import {UPDATE_USER, UserActionTypes, UserState} from "../actions/userTypes"; +import { UPDATE_USER, UserActionTypes, UserState } from "../actions/userTypes"; const initialState: UserState = { groups: [], diff --git a/src/background/redux/store.tsx b/src/background/redux/store.tsx index bb41d320..20701ae9 100644 --- a/src/background/redux/store.tsx +++ b/src/background/redux/store.tsx @@ -3,6 +3,4 @@ import rootReducer from "./reducers"; export default createStore(rootReducer); - export type RootState = ReturnType; - diff --git a/src/components/App.tsx b/src/components/App.tsx index 348005f6..d970f25d 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -9,7 +9,11 @@ import HeadArea from "./basicElements/topArea/TopArea"; import BottomArea from "./basicElements/bottomArea/BottomArea"; import { connect, ConnectedProps } from "react-redux"; -import { addAccessToken, addRefreshToken, checkedCookies } from "../background/redux/actions/tokens"; +import { + addAccessToken, + addRefreshToken, + checkedCookies +} from "../background/redux/actions/tokens"; import { SystemState } from "../background/redux/actions/sytemState"; import { checkForCookie } from "../background/api/auth"; import { FFLoading } from "./basicElements/Loading"; diff --git a/src/components/Constants.tsx b/src/components/Constants.tsx index 42a2ec9a..935a4549 100644 --- a/src/components/Constants.tsx +++ b/src/components/Constants.tsx @@ -1,21 +1,18 @@ -import React, {ReactElement} from "react"; +import React, { ReactElement } from "react"; import App from "./App"; -import {Provider} from 'react-redux' -import store from '../background/redux/store' - +import { Provider } from "react-redux"; +import store from "../background/redux/store"; function Constants(): ReactElement { // userinfos // url + host of backend - return ( - - ); - - + + + ); } export default Constants; diff --git a/src/components/Router/Router.tsx b/src/components/Router/Router.tsx index 738351d7..6ddb7bf5 100644 --- a/src/components/Router/Router.tsx +++ b/src/components/Router/Router.tsx @@ -1,28 +1,27 @@ -import React, {ReactElement} from "react"; -import {Redirect, Route, Switch} from "react-router-dom"; +import React, { ReactElement } from "react"; +import { Redirect, Route, Switch } from "react-router-dom"; import Health from "../pages/health/Health"; import Error404 from "../pages/errors/Error404"; import Login from "../basicElements/login/Login"; import Registration from "../pages/User/Registration"; -import FileSystem, {filesBaseUrl} from "../pages/filesytem/Filesystem"; +import FileSystem, { filesBaseUrl } from "../pages/filesytem/Filesystem"; import Profile from "../pages/User/Profile"; export default function Router(): ReactElement { - return ( - - + + - + - + - + - - {} - + + {} + - ) + ); } diff --git a/src/components/basicElements/Loading.tsx b/src/components/basicElements/Loading.tsx index 19661e35..5a07e885 100644 --- a/src/components/basicElements/Loading.tsx +++ b/src/components/basicElements/Loading.tsx @@ -3,13 +3,13 @@ import Spinner from "react-bootstrap/Spinner"; import { Container } from "react-bootstrap"; export function FFLoading(): JSX.Element { - return ( - - - Loading... - - - ); + return ( + + + Loading... + + + ); } diff --git a/src/components/basicElements/PermanentAssets.tsx b/src/components/basicElements/PermanentAssets.tsx index e2ef78e1..5787ca45 100644 --- a/src/components/basicElements/PermanentAssets.tsx +++ b/src/components/basicElements/PermanentAssets.tsx @@ -1,11 +1,11 @@ -import React, {ReactElement} from "react"; +import React, { ReactElement } from "react"; export default function PermanentAssets(): ReactElement { return (
- ) -} \ No newline at end of file + ); +} diff --git a/src/components/basicElements/__snapshots__/Banner.stories.tsx b/src/components/basicElements/__snapshots__/Banner.stories.tsx index de819efb..e9a789d6 100644 --- a/src/components/basicElements/__snapshots__/Banner.stories.tsx +++ b/src/components/basicElements/__snapshots__/Banner.stories.tsx @@ -3,10 +3,6 @@ import { BottomBanner } from "../bottomArea/BottomBanner"; import { TopBanner } from "../topArea/TopBanner"; storiesOf("Banner", module) - .add("BottomBanner", () => - - ) + .add("BottomBanner", () => ) - .add("TopBanner", () => - - ); \ No newline at end of file + .add("TopBanner", () => ); diff --git a/src/components/basicElements/bottomArea/BottomArea.tsx b/src/components/basicElements/bottomArea/BottomArea.tsx index 6fb1f927..da0c99ef 100644 --- a/src/components/basicElements/bottomArea/BottomArea.tsx +++ b/src/components/basicElements/bottomArea/BottomArea.tsx @@ -2,12 +2,11 @@ import Footer from "./Footer"; import { BottomBanner } from "./BottomBanner"; import React from "react"; - export default function BottomArea() { - return( + return (
- +
- ) -} \ No newline at end of file + ); +} diff --git a/src/components/basicElements/bottomArea/BottomBanner.tsx b/src/components/basicElements/bottomArea/BottomBanner.tsx index 5920ebf3..cd721b62 100644 --- a/src/components/basicElements/bottomArea/BottomBanner.tsx +++ b/src/components/basicElements/bottomArea/BottomBanner.tsx @@ -1,9 +1,9 @@ -import React, {ReactElement} from "react"; +import React, { ReactElement } from "react"; -export function BottomBanner():ReactElement { - return( +export function BottomBanner(): ReactElement { + return (
Queer Lives Matter
- ) + ); } diff --git a/src/components/basicElements/bottomArea/Footer.stories.tsx b/src/components/basicElements/bottomArea/Footer.stories.tsx index eba8e084..83970d44 100644 --- a/src/components/basicElements/bottomArea/Footer.stories.tsx +++ b/src/components/basicElements/bottomArea/Footer.stories.tsx @@ -3,9 +3,8 @@ import { BrowserRouter } from "react-router-dom"; import React from "react"; import Footer from "./Footer"; -storiesOf("Footer", module) - .add("default", () => - -