@@ -65,65 +65,18 @@ <h1>Apps</h1>
6565 </ div >
6666 </ section >
6767</ div >
68- </ body >
6968< script src ="/common/js/solid-auth-client.bundle.js "> </ script >
7069< script type ="text/javascript ">
71- const popupUri = window . location . origin + '/common/popup.html'
72- const stateData = {
73- session : null
74- }
75- const state = new Proxy ( stateData , {
76- set : ( obj , prop , value ) => {
77- obj [ prop ] = value
78- render ( )
79- }
80- } )
81-
82- function main ( ) {
83- // Render the session state
84- SolidAuthClient
85- . currentSession ( )
86- . then ( saveSession )
87- . then ( render )
88-
89- // Add event listeners
90- const actionButton = sessionActionButton ( )
91- actionButton . addEventListener ( 'click' , takeSessionAction )
92- }
93-
94- function saveSession ( session ) {
95- state . session = session
96- return session
97- }
70+ const button = document . getElementById ( 'session-action' )
71+ let loggedIn = false
9872
99- function takeSessionAction ( ) {
100- const { session } = state
101- const loggedIn = ! ! session
102- if ( loggedIn ) {
103- SolidAuthClient
104- . logout ( )
105- . then ( saveSession )
106- } else {
107- SolidAuthClient
108- . popupLogin ( { popupUri } )
109- . then ( saveSession )
110- }
111- }
112-
113- function render ( ) {
114- const { session } = state
115- const actionButton = sessionActionButton ( )
116- if ( ! session ) {
117- actionButton . innerText = 'Log in'
118- } else {
119- actionButton . innerText = 'Log out'
120- }
121- }
122-
123- function sessionActionButton ( ) {
124- return document . getElementById ( 'session-action' )
125- }
73+ solid . auth . trackSession ( session => {
74+ loggedIn = ! ! session
75+ button . innerText = loggedIn ? 'Log out' : 'Log in'
76+ } )
12677
127- document . addEventListener ( 'DOMContentLoaded' , main )
78+ button . addEventListener ( 'click' , ( ) =>
79+ loggedIn ? solid . auth . logout ( ) : solid . auth . popupLogin ( ) )
12880</ script >
81+ </ body >
12982</ html >
0 commit comments