diff --git a/resources/scripts/TransitionRouter.tsx b/resources/scripts/TransitionRouter.tsx index cdb7a1d80..f7898e597 100644 --- a/resources/scripts/TransitionRouter.tsx +++ b/resources/scripts/TransitionRouter.tsx @@ -10,7 +10,7 @@ export default ({ children }: Props) => ( ( - +
{children}
diff --git a/resources/scripts/routers/ServerRouter.tsx b/resources/scripts/routers/ServerRouter.tsx index 4b01f0b63..03386b72f 100644 --- a/resources/scripts/routers/ServerRouter.tsx +++ b/resources/scripts/routers/ServerRouter.tsx @@ -8,6 +8,8 @@ import WebsocketHandler from '@/components/server/WebsocketHandler'; import { ServerContext } from '@/state/server'; import { Provider } from 'react-redux'; import DatabasesContainer from '@/components/server/databases/DatabasesContainer'; +import FileManagerContainer from '@/components/server/files/FileManagerContainer'; +import { CSSTransition } from 'react-transition-group'; const ServerRouter = ({ match, location }: RouteComponentProps<{ id: string }>) => { const server = ServerContext.useStoreState(state => state.server.data); @@ -23,16 +25,18 @@ const ServerRouter = ({ match, location }: RouteComponentProps<{ id: string }>) return ( -
-
-
- Console - File Manager - Databases - User Management + +
+
+
+ Console + File Manager + Databases + User Management +
-
+
@@ -45,6 +49,7 @@ const ServerRouter = ({ match, location }: RouteComponentProps<{ id: string }>) + diff --git a/resources/scripts/state/flashes.ts b/resources/scripts/state/flashes.ts index 666778a11..09b641c10 100644 --- a/resources/scripts/state/flashes.ts +++ b/resources/scripts/state/flashes.ts @@ -4,6 +4,7 @@ import { FlashMessageType } from '@/components/MessageBox'; export interface FlashStore { items: FlashMessage[]; addFlash: Action; + addError: Action; clearFlashes: Action; } @@ -20,6 +21,9 @@ const flashes: FlashStore = { addFlash: action((state, payload) => { state.items.push(payload); }), + addError: action((state, payload) => { + state.items.push({ type: 'error', title: 'Error', ...payload }); + }), clearFlashes: action((state, payload) => { state.items = payload ? state.items.filter(flashes => flashes.key !== payload) : []; }), diff --git a/resources/styles/components/animations.css b/resources/styles/components/animations.css index d472d1267..bcbd60e40 100644 --- a/resources/styles/components/animations.css +++ b/resources/styles/components/animations.css @@ -1,9 +1,9 @@ /*! purgecss start ignore */ -.fade-enter { +.fade-enter, .fade-appear { @apply .opacity-0; } -.fade-enter-active { +.fade-enter-active, .fade-appear-active { @apply .opacity-100; transition: opacity 250ms; } diff --git a/resources/styles/components/spinners.css b/resources/styles/components/spinners.css index 2141e76a6..771db060a 100644 --- a/resources/styles/components/spinners.css +++ b/resources/styles/components/spinners.css @@ -74,12 +74,14 @@ } &.spinner-blue { - border: 3px solid hsla(212, 92%, 43%, 0.2); + border-style: solid; + border-color: hsla(212, 92%, 43%, 0.2); border-top-color: hsl(212, 92%, 43%); } &.spinner-white { - border: 3px solid rgba(255, 255, 255, 0.2); + border-style: solid; + border-color: rgba(255, 255, 255, 0.2); border-top-color: rgb(255, 255, 255); } }