From cb4f4a0a64b91c5d7bbdf9a5f426a552b5b73c2d Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 23 Jan 2020 10:15:41 +0100 Subject: [PATCH] Add file input in feed --- src/app/components/feed/feed.component.html | 15 +++++++++++-- src/app/components/feed/feed.component.sass | 21 +++++++++++++++++ src/app/components/feed/feed.component.ts | 25 ++++++++++++++++++++- 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/app/components/feed/feed.component.html b/src/app/components/feed/feed.component.html index 3f7bb97..47b1ed2 100644 --- a/src/app/components/feed/feed.component.html +++ b/src/app/components/feed/feed.component.html @@ -6,12 +6,23 @@
+
+

Preview:

+ + +
- +

I protected the environment. diff --git a/src/app/components/feed/feed.component.sass b/src/app/components/feed/feed.component.sass index 96d02f4..5f16e08 100644 --- a/src/app/components/feed/feed.component.sass +++ b/src/app/components/feed/feed.component.sass @@ -16,6 +16,7 @@ width: 100% padding: 0.5em + ::ng-deep .mat-option touch-action: auto !important @@ -30,6 +31,26 @@ width: 100% padding-left: 0.5em padding-right: 0.5em + .mat-icon + transform: scale(1.5) +#inputPreview + max-width: 75% + max-height: 100% + width: auto + border-radius: 4px + mask-mode: luminance + outline: none + user-select: none +::ng-deep video + width: 100% + max-height: 40vh + outline: none + user-select: none +#inputPreviewWrapper + margin: auto + text-align: center + max-height: 512px + margin-bottom: 1em #action-chooser width: 100% diff --git a/src/app/components/feed/feed.component.ts b/src/app/components/feed/feed.component.ts index d7d85b8..a103d97 100644 --- a/src/app/components/feed/feed.component.ts +++ b/src/app/components/feed/feed.component.ts @@ -6,6 +6,7 @@ import {DatasharingService} from '../../services/datasharing.service'; import {ActivityService} from 'src/app/services/activity/activity.service'; import {User} from 'src/app/models/user'; import {IErrorResponse} from '../../models/interfaces/IErrorResponse'; +import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject'; @Component({ selector: 'home-feed', @@ -15,6 +16,12 @@ import {IErrorResponse} from '../../models/interfaces/IErrorResponse'; export class FeedComponent implements OnInit { loadingNew = true; loadingMostLiked = true; + // file upload variables + public uploading = false; + public profilePictureUrl: BehaviorSubject; + private file; + private fileType; + public localFileUrl; checked = false; // if the "I protected the environment."-box is checked view = 'new'; @@ -27,7 +34,7 @@ export class FeedComponent implements OnInit { loggedIn = false; user: User; - errorOccurred: boolean; + errorOccurred = false; private errorMessage: string; @@ -89,6 +96,22 @@ export class FeedComponent implements OnInit { } } + onFileInputChange(event) { + this.errorOccurred = false; + this.errorMessage = ''; + this.file = event.target.files[0]; + if (this.file.type.includes('video')) { + this.fileType = 'video'; + } else if (this.file.type.includes('image')) { + this.fileType = 'image'; + } + const reader = new FileReader(); + reader.onload = (e: any) => { + this.localFileUrl = e.target.result; + }; + reader.readAsDataURL(this.file); + } + /** * Fetches the next posts when scrolled */