Many of my clients have the need for an FAQ on their intranet.
The traditional way is still the way: using lists. But let’s make this more user friendly.
As a sort of “UI for the back end” I always add the list as a tab in Microsoft Teams, using the Microsoft Lists app. This helps the customer to punch data in a much more user friendly way.
Using PnP Modern Search for the front end, I wrote a handlebar template for the solution using <PnP-Panel>, which is one of the built in web components. You click (and search if you like) on the FAQ item and it pops up as a panel with the rich content. Anonymised screenshots below:
Handlebar template:
<style> .listevisning { display: block; background-color: #F0F9Fb; position: relative; margin-bottom: 10px; padding-bottom: 10px; padding: 10px; border-radius: .375rem; color: #000000; } .FAQ-visning { padding-inline-start: 0px; }</style> <ul class="FAQ-visning"> {{#each data.items as |item|}} <pnp-select> {{#> resultTypes item=item}}<pnp-panel data-is-open="false" data-is-light-dismiss="true" data-is-blocking="true" data-size="3" data-panel-header-text="{{Title}}"> <template id="panel-open"> <div class="listevisning">{{Title}}</div> </template> <template id="panel-content"> <div class="kategori" style="margin:10px;"> <b>Kategori:</b> {{FAQKategori}}</div> <div class="innhold" style="margin:10px;"> {{{FAQAnswer}}} </div> </template></pnp-panel> {{/resultTypes}} </pnp-select> {{/each}} {{#if @root.properties.paging.showPaging}} {{#gt @root.data.totalItemsCount @root.properties.paging.itemsCountPerPage}} <pnp-pagination data-total-items="{{@root.data.totalItemsCount}}" data-hide-first-last-pages="{{@root.properties.paging.hideFirstLastPages}}" data-hide-disabled="{{@root.properties.paging.hideDisabled}}" data-hide-navigation="{{@root.properties.paging.hideNavigation}}" data-range="{{@root.properties.paging.pagingRange}}" data-items-count-per-page="{{@root.properties.paging.itemsCountPerPage}}" data-current-page-number="{{@root.paging.currentPageNumber}}" data-theme-variant="{{JSONstringify @root.theme}}" > </pnp-pagination> {{/gt}} {{/if}}</content>
Go ahead and take it for a spin. Make that FAQ pop for your clients!
Leave a Reply