forked from cybrespace/pinafore
		
	added account meta fields to profile
This commit is contained in:
		
							parent
							
								
									32ea30f4bb
								
							
						
					
					
						commit
						698d8f5730
					
				
					 2 changed files with 137 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -5,6 +5,7 @@
 | 
			
		|||
      <AccountProfileHeader {account} {relationship} {verifyCredentials} />
 | 
			
		||||
      <AccountProfileFollow {account} {relationship} {verifyCredentials} />
 | 
			
		||||
      <AccountProfileNote {account} />
 | 
			
		||||
      <AccountProfileMeta {account} />
 | 
			
		||||
      <AccountProfileDetails {account} {relationship} {verifyCredentials} />
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +28,7 @@
 | 
			
		|||
    grid-template-areas: "avatar     name        label     followed-by   follow"
 | 
			
		||||
                         "avatar     username    username  username      follow"
 | 
			
		||||
                         "avatar     note        note      note          follow"
 | 
			
		||||
                         "meta       meta        meta      meta          meta"
 | 
			
		||||
                         "details    details     details   details       details";
 | 
			
		||||
    grid-template-columns: min-content auto 1fr 1fr min-content;
 | 
			
		||||
    grid-column-gap: 10px;
 | 
			
		||||
| 
						 | 
				
			
			@ -57,6 +59,7 @@
 | 
			
		|||
                           "avatar     username      follow"
 | 
			
		||||
                           "avatar     followed-by   follow"
 | 
			
		||||
                           "note       note          note"
 | 
			
		||||
                           "meta       meta          meta"
 | 
			
		||||
                           "details    details       details";
 | 
			
		||||
      grid-template-columns: min-content minmax(auto, 1fr) min-content;
 | 
			
		||||
      grid-template-rows: min-content min-content 1fr min-content;
 | 
			
		||||
| 
						 | 
				
			
			@ -68,6 +71,7 @@
 | 
			
		|||
  import AccountProfileHeader from './AccountProfileHeader.html'
 | 
			
		||||
  import AccountProfileFollow from './AccountProfileFollow.html'
 | 
			
		||||
  import AccountProfileNote from './AccountProfileNote.html'
 | 
			
		||||
  import AccountProfileMeta from './AccountProfileMeta.html'
 | 
			
		||||
  import AccountProfileDetails from './AccountProfileDetails.html'
 | 
			
		||||
  import { store } from '../../_store/store'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -81,6 +85,7 @@
 | 
			
		|||
      AccountProfileHeader,
 | 
			
		||||
      AccountProfileFollow,
 | 
			
		||||
      AccountProfileNote,
 | 
			
		||||
      AccountProfileMeta,
 | 
			
		||||
      AccountProfileDetails
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										132
									
								
								routes/_components/profile/AccountProfileMeta.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								routes/_components/profile/AccountProfileMeta.html
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,132 @@
 | 
			
		|||
<div class="account-profile-meta">
 | 
			
		||||
   {@html meta}
 | 
			
		||||
</div>
 | 
			
		||||
<style>
 | 
			
		||||
  .account-profile-meta {
 | 
			
		||||
    display: grid;
 | 
			
		||||
    grid-template-areas: "meta-name-1 meta-value-1"
 | 
			
		||||
                         "meta-name-2 meta-value-2"
 | 
			
		||||
                         "meta-name-3 meta-value-3"
 | 
			
		||||
                         "meta-name-4 meta-value-4";
 | 
			
		||||
    grid-template-columns: max-content 1fr;
 | 
			
		||||
    grid-template-rows: max-content;
 | 
			
		||||
    grid-area: meta;
 | 
			
		||||
    padding: 10px 0;
 | 
			
		||||
    font-size: 0.9em;
 | 
			
		||||
    word-wrap: break-word;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    white-space: pre-wrap;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  :global(.account-profile-meta p) {
 | 
			
		||||
    margin: 0 0 20px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  :global(.account-profile-meta p:first-child) {
 | 
			
		||||
    margin: 0 0 20px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  :global(.account-profile-meta p:last-child) {
 | 
			
		||||
    margin: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  :global(.account-profile-meta > *:last-child,.account-profile-meta > *:nth-last-child(2)) {
 | 
			
		||||
    border-bottom: 1px solid var(--main-border);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  :global(.account-profile-meta > *) {
 | 
			
		||||
    border-top: 1px solid var(--main-border);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  :global(.account-profile-meta-field-name) {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    padding: 10px 20px 10px 30px;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  :global(.account-profile-meta-field-name:after) {
 | 
			
		||||
    content: '';
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    right: 0;
 | 
			
		||||
    top: 15%;
 | 
			
		||||
    height: 70%;
 | 
			
		||||
    border-right: 1px solid var(--main-border);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  :global(.account-profile-meta-field-value) {
 | 
			
		||||
    padding: 10px 30px 10px 20px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .meta-name-1  { grid-area: meta-name-1;  }
 | 
			
		||||
  .meta-value-1 { grid-area: meta-value-1; }
 | 
			
		||||
  .meta-name-2  { grid-area: meta-name-2;  }
 | 
			
		||||
  .meta-value-2 { grid-area: meta-value-2; }
 | 
			
		||||
  .meta-name-3  { grid-area: meta-name-3;  }
 | 
			
		||||
  .meta-value-3 { grid-area: meta-value-3; }
 | 
			
		||||
  .meta-name-4  { grid-area: meta-name-4;  }
 | 
			
		||||
  .meta-value-4 { grid-area: meta-value-4; }
 | 
			
		||||
 | 
			
		||||
  @media (max-width: 767px) {
 | 
			
		||||
    .account-profile-meta {
 | 
			
		||||
      padding: 5px 0;
 | 
			
		||||
      grid-template-areas: "meta-name-1"
 | 
			
		||||
                           "meta-value-1"
 | 
			
		||||
                           "meta-name-2"
 | 
			
		||||
                           "meta-value-2"
 | 
			
		||||
                           "meta-name-3"
 | 
			
		||||
                           "meta-value-3"
 | 
			
		||||
                           "meta-name-4"
 | 
			
		||||
                           "meta-value-4";
 | 
			
		||||
      grid-template-columns: 100%;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    :global(.account-profile-meta > *) {
 | 
			
		||||
      border: none;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    :global(.account-profile-meta > *:last-child,.account-profile-meta > *:nth-last-child(2)) {
 | 
			
		||||
      border: none;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    :global(.account-profile-meta-field-name:after) {
 | 
			
		||||
      border: none;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    :global(.account-profile-meta-field-name) {
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      padding: 10px 0px 0px;
 | 
			
		||||
      border-top: 1px solid var(--main-border);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    :global(.account-profile-meta-field-value) {
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      padding: 0px 0px 10px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    :global(.account-profile-meta-field-name:nth-last-child(2)) {
 | 
			
		||||
      border-top: 1px solid var(--main-border);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    :global(.account-profile-meta-field-value:last-child) {
 | 
			
		||||
      border-bottom: 1px solid var(--main-border);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
</style>
 | 
			
		||||
<script>
 | 
			
		||||
  export default {
 | 
			
		||||
    computed: {
 | 
			
		||||
      meta: ({ account }) => {
 | 
			
		||||
        let metaHTML = '';
 | 
			
		||||
        for(var i=0; i < account.fields.length; i++) {
 | 
			
		||||
          metaHTML += `<div class="account-profile-meta-field-name meta-name-${i+1}">`;
 | 
			
		||||
          metaHTML += `<p>${account.fields[i].name}</p>`;
 | 
			
		||||
          metaHTML += `</div>`;
 | 
			
		||||
          metaHTML += `<div class="account-profile-meta-field-value meta-value-${i+1}">`;
 | 
			
		||||
          metaHTML += `<p>${account.fields[i].value}</p>`;
 | 
			
		||||
          metaHTML += `</div>`;
 | 
			
		||||
        }
 | 
			
		||||
        return metaHTML;
 | 
			
		||||
      }    
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
</script>
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue