Authentication
Loading...
;\n }\n\n if (currentUser) {\n return (\n \n\n {currentUser.login}\n \n \n
\n \n );\n }\n\n return (\n\n Log in with GitHub\n
\n );\n}"],"hast":[0,{"type":[0,"root"],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"pre"],"properties":[0,{"class":[1,[[0,"shiki"],[0,"shiki-themes"],[0,"github-light-default"],[0,"houston"],[0,"p-4"],[0,"rounded-b-md"],[0,"max-w-96"]]],"style":[0,"background-color:#F2F4F4;--shiki-dark-bg:#0D171C;color:#546461;--shiki-dark:#B4C0BE; font-variant-ligatures: none;"],"tabindex":[0,"0"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"code"],"properties":[0,{}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"1"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"const"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;--shiki-dark:#ACAFFF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," PROFILE_QUERY"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," ="]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7B00C7;--shiki-dark:#00FAB3"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," gql"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"`"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"2"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," query CurrentUserForLayout {"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"3"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," currentUser {"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"4"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," login"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"5"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," avatar_url"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"6"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," }"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"7"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," }"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"8"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"`"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,";"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"9"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"10"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"function"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7B00C7;--shiki-dark:#00FAB3"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," Profile"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"() {"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"11"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," const"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," { "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;--shiki-dark:#ACAFFF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"client"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,", "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;--shiki-dark:#ACAFFF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"loading"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,", "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#B03900;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"data"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,": { "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;--shiki-dark:#ACAFFF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"currentUser"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," } } "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"="]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7B00C7;--shiki-dark:#00FAB3"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," useQuery"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"("]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"12"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;--shiki-dark:#ACAFFF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," PROFILE_QUERY"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,","]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"13"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," { "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"fetchPolicy"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,": "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"\"network-only\""]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," }"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"14"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," );"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"15"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"16"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," if"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," ("]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"loading"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,") {"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"17"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," return"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," <"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"p"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;font-style:inherit;--shiki-dark:#7DC0FF;--shiki-dark-font-style:italic"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," className"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"="]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"\"navbar-text navbar-right\""]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">Loading..."]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"p"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">;"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"18"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," }"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"19"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"20"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," if"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," ("]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"currentUser"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,") {"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"21"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," return"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," ("]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"22"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," <"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"span"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"23"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," <"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"p"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;font-style:inherit;--shiki-dark:#7DC0FF;--shiki-dark-font-style:italic"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," className"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"="]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"\"navbar-text navbar-right\""]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"24"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," {"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"currentUser"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"."]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"login"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"}"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"25"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," "]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"26"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," <"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"button"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"27"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;font-style:inherit;--shiki-dark:#7DC0FF;--shiki-dark-font-style:italic"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," onClick"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"="]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"{"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"() "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"=>"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," {"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"28"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#6E7781;font-style:inherit;--shiki-dark:#EEF0F98F;--shiki-dark-font-style:italic"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," // call your auth logout code then reset store"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"29"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," App"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"."]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7B00C7;--shiki-dark:#00FAB3"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"logout"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"()."]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7B00C7;--shiki-dark:#00FAB3"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"then"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"(() "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"=>"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#7DC0FF"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," client"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"."]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7B00C7;--shiki-dark:#00FAB3"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"resetStore"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"());"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"30"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," }"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"}"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"31"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," >"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"32"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," Log out"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"33"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"button"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"34"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"p"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"35"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"span"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"36"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," );"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"37"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," }"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"38"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"39"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," return"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," ("]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"40"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," <"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"p"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;font-style:inherit;--shiki-dark:#7DC0FF;--shiki-dark-font-style:italic"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," className"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"="]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"\"navbar-text navbar-right\""]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"41"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," <"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"a"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#365E72;font-style:inherit;--shiki-dark:#7DC0FF;--shiki-dark-font-style:italic"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," href"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#005AAF;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"="]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#7D6800;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"\"/login/github\""]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">Log in with GitHub"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"a"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"42"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," "]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#116329;--shiki-dark:#5C95B2"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"p"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,">"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"43"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0," );"]}]]]}]]]}],[0,{"type":[0,"text"],"value":[0,"\n"]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"class":[0,"line"]}],"children":[1,[[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"className":[1,[[0,"select-none inline-block text-right w-8 mr-4"]]]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"44"]}]]]}],[0,{"type":[0,"element"],"tagName":[0,"span"],"properties":[0,{"style":[0,"color:#546461;--shiki-dark:#B4C0BE"]}],"children":[1,[[0,{"type":[0,"text"],"value":[0,"}"]}]]]}]]]}]]]}]]]}]]]}]}]]]}]}],"majorComponent":[0,true],"divWrap":[0,true]}]}]]]}]}" ssr="" client="load" opts="{"name":"MDXRenderRoot","value":true}" await-children="">Unless all of the data you are loading is completely public, your app has some sort of users, accounts and permissions systems. If different users have different permissions in your application, then you need a way to tell the server which user is associated with each request.
Apollo Client uses the ultra flexible Apollo Link that includes several options for authentication.
Cookie
If your app is browser based and you are using cookies for login and session management with a backend, tell your network interface to send the cookie along with every request. Pass the credentials option e.g. credentials: 'same-origin'
if your backend server is the same domain, as shown below, or else credentials: 'include'
if your backend is a different domain.
1const link = createHttpLink({
2 uri: '/graphql',
3 credentials: 'same-origin'
4});
5
6const client = new ApolloClient({
7 cache: new InMemoryCache(),
8 link,
9});
This option is passed through to the fetch
implementation used by the HttpLink when sending the query.
Note: the backend must also allow credentials from the requested origin. e.g. if using the popular 'cors' package from npm in node.js, the following settings would work in tandem with the above apollo client settings:
1// enable cors
2var corsOptions = {
3 origin: '<insert uri of front-end domain>',
4 credentials: true // <-- REQUIRED backend setting
5};
6app.use(cors(corsOptions));
Header
Another common way to identify yourself when using HTTP is to send along an authorization header. Add an authorization
header to every HTTP request by chaining together Apollo Links. In this example, we'll pull the login token from localStorage
every time a request is sent:
ReactJS example:
1import { ApolloClient, createHttpLink, InMemoryCache } from '@apollo/client';
2import { setContext } from '@apollo/client/link/context';
3
4const httpLink = createHttpLink({
5 uri: '/graphql',
6});
7
8const authLink = setContext((_, { headers }) => {
9 // get the authentication token from local storage if it exists
10 const token = localStorage.getItem('token');
11 // return the headers to the context so httpLink can read them
12 return {
13 headers: {
14 ...headers,
15 authorization: token ? `Bearer ${token}` : "",
16 }
17 }
18});
19
20const client = new ApolloClient({
21 link: authLink.concat(httpLink),
22 cache: new InMemoryCache()
23});
VueJS example:
1import ApolloClient from "apollo-client";
2import { HttpLink } from "apollo-link-http";
3import { ApolloLink, concat } from "apollo-link";
4import { InMemoryCache } from "apollo-cache-inmemory";
5import { getMainDefinition } from "apollo-utilities";
6
7const httpLink = new HttpLink({ uri: process.env.VUE_APP_API_TARGET });
8
9const authMiddleware = new ApolloLink((operation, forward) => {
10 // add the authorization to the headers
11const token = localStorage.getItem('token');
12 operation.setContext({
13 headers: {
14 authorization: token ? `Bearer ${token}` : "",
15 },
16 });
17 return forward(operation);
18});
19export const apolloClient = new ApolloClient({
20 link: concat(authMiddleware, httpLink),
21 cache: new InMemoryCache(),
22});
23
The server can use that header to authenticate the user and attach it to the GraphQL execution context, so resolvers can modify their behavior based on a user's role and permissions.
Reset store on logout
Since Apollo caches all of your query results, it's important to get rid of them when the login state changes.
The most straightforward way to ensure that the UI and store state reflects the current user's permissions is to call client.resetStore()
after your login or logout process has completed. This will cause the store to be cleared and all active queries to be refetched. If you just want the store to be cleared and don't want to refetch active queries, use client.clearStore()
instead. Another option is to reload the page, which will have a similar effect.
1const PROFILE_QUERY = gql`
2 query CurrentUserForLayout {
3 currentUser {
4 login
5 avatar_url
6 }
7 }
8`;
9
10function Profile() {
11 const { client, loading, data: { currentUser } } = useQuery(
12 PROFILE_QUERY,
13 { fetchPolicy: "network-only" }
14 );
15
16 if (loading) {
17 return <p className="navbar-text navbar-right">Loading...</p>;
18 }
19
20 if (currentUser) {
21 return (
22 <span>
23 <p className="navbar-text navbar-right">
24 {currentUser.login}
25
26 <button
27 onClick={() => {
28 // call your auth logout code then reset store
29 App.logout().then(() => client.resetStore());
30 }}
31 >
32 Log out
33 </button>
34 </p>
35 </span>
36 );
37 }
38
39 return (
40 <p className="navbar-text navbar-right">
41 <a href="/login/github">Log in with GitHub</a>
42 </p>
43 );
44}