angular-material-extensions / link-preview

Angular open source UI library to preview web links
https://angular-material-extensions.github.io/link-preview
MIT License
57 stars 18 forks source link

Multiple Link Preview Containers on One Page #60

Open sinanspd opened 5 years ago

sinanspd commented 5 years ago

Bug Report or Feature Request (mark with an x)

- [ ] bug report -> please search issues before submitting
- [x] feature request

OS and Version?

Versions

Repro steps

The log given by the failure

Desired functionality

Mention any other details that might be useful

AnthonyNahas commented 5 years ago

what do you mean with multiple link preview container ?

The mat-link-preview-container component ?

Did you try the multiple input ? It will allow you to render multiple links and url within one container..

check this out

Bildschirmfoto 2019-04-19 um 09 10 15

Please feel free to provide more info about your feature request

sinanspd commented 5 years ago

Hi @AnthonyNahas Thank is not what I meant. Let's say we have two input fields for links (i.e. one for media articles, one for youtube videos/interviews)

  <form [formGroup]="pressForm">
       <mat-form-field appearance="outline">
              <mat-label> New Article Links </mat-label>
              <textarea matInput matTextareaAutosize matLinkPreview minRows="6" 
                     formControlName="articles"></textarea>  
        </mat-form-field>
        <mat-link-preview-container [multiple]="true"></mat-link-preview-container> 
    </form>

    <form [formGroup]="videoForm">
            <mat-form-field appearance="outline">
           <mat-label> Video Links </mat-label>
                <textarea matInput matTextareaAutosize matLinkPreview minRows="6" 
                                    formControlName="videos"></textarea>    
              </mat-form-field>
               <mat-link-preview-container [multiple]="true"></mat-link-preview-container>
    </form>

Now if we put a link inside the first text area, it renders the preview in both containers

Screen Shot 2019-04-19 at 2 26 19 AM

Ideally, it would be nice to be able to link input fields to specific containers so multiple instances can be used in the same component. Similar to how Angular Datepicker is implemented

AnthonyNahas commented 5 years ago

I see! I will really appreciate a PR from you !!

murilogoncalvesp commented 4 years ago

Any news on this? It would be really nice.

sinanspd commented 4 years ago

Sorry I had no time to look into this. Have a quite lengthy backlog on my hands and this is towards the bottom. I am not a front end dev so I need to educate myself in type script a little bit before doing this. If anybody wants to pick it up feel free.

From what I remember during my initial pass, this behavior is coming from the fact that the injected service is a singleton. An easy, obvious work around is to, instead of having a shared service, to init one per component but I think it is bad practice to do so.

I think the best way to do this will be to pass the service some sort of identifier and keep the links in a map instead of a list. Datepicker, I believe achieves this through ViewChilds but as I said, I need to dig into datepicker to see exactly how they do it and the 30 files in the repo doesn't make it much easier. I need to block a good chunk of time to dig into that. Will try to get to this Q1 2020 hopefully.

AnthonyNahas commented 4 years ago

no problem thank u

sivarooban commented 4 years ago

how to set linkpreview on page load

java-sinon commented 3 years ago

Any news on this? i am stuck. how to show preveiw on page load if we have url?

AnthonyNahas commented 3 years ago

PR are welcome guys

java-sinon commented 3 years ago

PR are welcome guys

any solution for this?