mirror of
https://github.com/pixelfed/pixelfed.git
synced 2025-03-15 16:29:51 +00:00
commit
91e2ad6415
79 changed files with 763 additions and 110 deletions
|
@ -6,6 +6,7 @@
|
|||
- Implement Admin Domain Blocks API (Mastodon API Compatible) [ThisIsMissEm](https://github.com/ThisIsMissEm) ([#5021](https://github.com/pixelfed/pixelfed/pull/5021))
|
||||
- Authorize Interaction support (for handling remote interactions) ([4ca7c6c3](https://github.com/pixelfed/pixelfed/commit/4ca7c6c3))
|
||||
- Contact Form Admin Responses ([52cc6090](https://github.com/pixelfed/pixelfed/commit/52cc6090))
|
||||
- Profile Carousels ([8af77a3f](https://github.com/pixelfed/pixelfed/commit/8af77a3f))
|
||||
|
||||
### Federation
|
||||
- Add ActiveSharedInboxService, for efficient sharedInbox caching ([1a6a3397](https://github.com/pixelfed/pixelfed/commit/1a6a3397))
|
||||
|
|
|
@ -33,7 +33,7 @@ class ProfileController extends Controller
|
|||
}
|
||||
|
||||
// redirect authed users to Metro 2.0
|
||||
if ($request->user()) {
|
||||
if ($request->user() && !$request->filled('carousel')) {
|
||||
// unless they force static view
|
||||
if (! $request->has('fs') || $request->input('fs') != '1') {
|
||||
$pid = AccountService::usernameToId($username);
|
||||
|
@ -64,6 +64,7 @@ class ProfileController extends Controller
|
|||
|
||||
protected function buildProfile(Request $request, $user)
|
||||
{
|
||||
$carousel = (bool) $request->filled('carousel');
|
||||
$username = $user->username;
|
||||
$loggedIn = Auth::check();
|
||||
$isPrivate = false;
|
||||
|
@ -97,6 +98,9 @@ class ProfileController extends Controller
|
|||
],
|
||||
];
|
||||
|
||||
if($carousel) {
|
||||
return view('profile.show_carousel', compact('profile', 'settings'));
|
||||
}
|
||||
return view('profile.show', compact('profile', 'settings'));
|
||||
} else {
|
||||
$key = 'profile:settings:'.$user->id;
|
||||
|
@ -135,7 +139,9 @@ class ProfileController extends Controller
|
|||
'list' => $settings->show_profile_followers,
|
||||
],
|
||||
];
|
||||
|
||||
if($carousel) {
|
||||
return view('profile.show_carousel', compact('profile', 'settings'));
|
||||
}
|
||||
return view('profile.show', compact('profile', 'settings'));
|
||||
}
|
||||
}
|
||||
|
|
6
package-lock.json
generated
6
package-lock.json
generated
|
@ -7,6 +7,7 @@
|
|||
"name": "pixelfed",
|
||||
"dependencies": {
|
||||
"@fancyapps/fancybox": "^3.5.7",
|
||||
"@glidejs/glide": "^3.6.2",
|
||||
"@hcaptcha/vue-hcaptcha": "^1.3.0",
|
||||
"@peertube/p2p-media-loader-core": "^1.0.14",
|
||||
"@peertube/p2p-media-loader-hlsjs": "^1.0.14",
|
||||
|
@ -2140,6 +2141,11 @@
|
|||
"jquery": ">=1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@glidejs/glide": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/@glidejs/glide/-/glide-3.6.2.tgz",
|
||||
"integrity": "sha512-oXw7In0IZV69PC0PChQakY+yh+UnqIb5+zfVuEIzub6Kkfl1foo7TAhr2PZXPzihOG9YS57t8wvdzBFEZ0aPVA=="
|
||||
},
|
||||
"node_modules/@hcaptcha/vue-hcaptcha": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@hcaptcha/vue-hcaptcha/-/vue-hcaptcha-1.3.0.tgz",
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@fancyapps/fancybox": "^3.5.7",
|
||||
"@glidejs/glide": "^3.6.2",
|
||||
"@hcaptcha/vue-hcaptcha": "^1.3.0",
|
||||
"@peertube/p2p-media-loader-core": "^1.0.14",
|
||||
"@peertube/p2p-media-loader-hlsjs": "^1.0.14",
|
||||
|
|
1
public/css/profile.css
vendored
Normal file
1
public/css/profile.css
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.glide{box-sizing:border-box;position:relative;width:100%}.glide *{box-sizing:inherit}.glide__slides,.glide__track{overflow:hidden}.glide__slides{backface-visibility:hidden;display:flex;flex-wrap:nowrap;list-style:none;margin:0;padding:0;position:relative;touch-action:pan-Y;transform-style:preserve-3d;white-space:nowrap;width:100%;will-change:transform}.glide__slide,.glide__slides--dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none}.glide__slide{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;flex-shrink:0;height:100%;white-space:normal;width:100%}.glide__slide a{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-moz-user-select:none;-ms-user-select:none}.glide__arrows,.glide__bullets{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.glide--rtl{direction:rtl}.glide__arrow{background-color:transparent;border:2px solid hsla(0,0%,100%,.5);border-radius:4px;box-shadow:0 .25em .5em 0 rgba(0,0,0,.1);color:#fff;cursor:pointer;display:block;line-height:1;opacity:1;padding:9px 12px;position:absolute;text-shadow:0 .25em .5em rgba(0,0,0,.1);text-transform:uppercase;top:50%;transform:translateY(-50%);transition:opacity .15s ease,border .3s ease-in-out;z-index:2}.glide__arrow:focus{outline:none}.glide__arrow:hover{border-color:#fff}.glide__arrow--left{left:2em}.glide__arrow--right{right:2em}.glide__arrow--disabled{opacity:.33}.glide__bullets{bottom:2em;display:inline-flex;left:50%;list-style:none;position:absolute;transform:translateX(-50%);z-index:2}.glide__bullet{background-color:hsla(0,0%,100%,.5);border:2px solid transparent;border-radius:50%;box-shadow:0 .25em .5em 0 rgba(0,0,0,.1);cursor:pointer;height:9px;line-height:0;margin:0 .25em;padding:0;transition:all .3s ease-in-out;width:9px}.glide__bullet:focus{outline:none}.glide__bullet:focus,.glide__bullet:hover{background-color:hsla(0,0%,100%,.5);border:2px solid #fff}.glide__bullet--active{background-color:#fff}.glide--swipeable{cursor:grab;cursor:-webkit-grab}.glide--dragging{cursor:grabbing;cursor:-webkit-grabbing}
|
2
public/js/account-import.js
vendored
2
public/js/account-import.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/admin.js
vendored
2
public/js/admin.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/admin_invite.js
vendored
2
public/js/admin_invite.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/app.js
vendored
2
public/js/app.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/js/collections.js
vendored
2
public/js/collections.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/components.js
vendored
2
public/js/components.js
vendored
|
@ -1 +1 @@
|
|||
"use strict";(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[4774],{92182:(e,t,o)=>{o.r(t);var a=o(62893),l=o(63288),n=o(32252),r=o.n(n),s=o(65201),d=o.n(s),c=o(24786),i=o(57742),u=o.n(i),f=o(89829),h=o.n(f),m=(o(34352),o(80158),o(74692));function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}window.Vue=a.default,a.default.use(h()),a.default.use(u()),a.default.use(l.default),a.default.use(r()),a.default.use(d()),a.default.use(c.default,{name:"Timeago",locale:"en"}),pixelfed.readmore=function(){m(".read-more").each((function(e,t){var o=m(this),a=o.attr("data-readmore");"undefined"!==p(a)&&!1!==a||o.readmore({collapsedHeight:45,heightMargin:48,moreLink:'<a href="#" class="d-block small font-weight-bold text-dark text-center">Show more</a>',lessLink:'<a href="#" class="d-block small font-weight-bold text-dark text-center">Show less</a>'})}))};try{document.createEvent("TouchEvent"),m("body").addClass("touch")}catch(e){}window.filesize=o(91139),m('[data-toggle="tooltip"]').tooltip();console.log("%cStop!","color:red; font-size:60px; font-weight: bold; -webkit-text-stroke: 1px black;"),console.log('%cThis is a browser feature intended for developers. If someone told you to copy and paste something here to enable a Pixelfed feature or "hack" someone\'s account, it is a scam and will give them access to your Pixelfed account.',"font-size: 18px;")}},e=>{e.O(0,[3660],(()=>{return t=92182,e(e.s=t);var t}));e.O()}]);
|
||||
"use strict";(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[4774],{92182:(e,t,o)=>{o.r(t);var a=o(62893),l=o(63288),n=o(32252),r=o.n(n),s=o(65201),d=o.n(s),c=o(24786),i=o(57742),u=o.n(i),f=o(89829),h=o.n(f),m=(o(18650),o(80158),o(74692));function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}window.Vue=a.default,a.default.use(h()),a.default.use(u()),a.default.use(l.default),a.default.use(r()),a.default.use(d()),a.default.use(c.default,{name:"Timeago",locale:"en"}),pixelfed.readmore=function(){m(".read-more").each((function(e,t){var o=m(this),a=o.attr("data-readmore");"undefined"!==p(a)&&!1!==a||o.readmore({collapsedHeight:45,heightMargin:48,moreLink:'<a href="#" class="d-block small font-weight-bold text-dark text-center">Show more</a>',lessLink:'<a href="#" class="d-block small font-weight-bold text-dark text-center">Show less</a>'})}))};try{document.createEvent("TouchEvent"),m("body").addClass("touch")}catch(e){}window.filesize=o(91139),m('[data-toggle="tooltip"]').tooltip();console.log("%cStop!","color:red; font-size:60px; font-weight: bold; -webkit-text-stroke: 1px black;"),console.log('%cThis is a browser feature intended for developers. If someone told you to copy and paste something here to enable a Pixelfed feature or "hack" someone\'s account, it is a scam and will give them access to your Pixelfed account.',"font-size: 18px;")}},e=>{e.O(0,[3660],(()=>{return t=92182,e(e.s=t);var t}));e.O()}]);
|
2
public/js/compose-classic.js
vendored
2
public/js/compose-classic.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/js/compose.js
vendored
2
public/js/compose.js
vendored
File diff suppressed because one or more lines are too long
1
public/js/daci.chunk.5bb69fda8fdedc47.js
vendored
Normal file
1
public/js/daci.chunk.5bb69fda8fdedc47.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/js/daci.chunk.5dbd1faea828ed0b.js
vendored
1
public/js/daci.chunk.5dbd1faea828ed0b.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/developers.js
vendored
2
public/js/developers.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/direct.js
vendored
2
public/js/direct.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/js/discover~findfriends.chunk.2392a288a9031530.js
vendored
Normal file
1
public/js/discover~findfriends.chunk.2392a288a9031530.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/js/discover~memories.chunk.398b63b5473c6be6.js
vendored
Normal file
1
public/js/discover~memories.chunk.398b63b5473c6be6.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/js/discover~myhashtags.chunk.29b97f80a1338877.js
vendored
Normal file
1
public/js/discover~myhashtags.chunk.29b97f80a1338877.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/js/discover~serverfeed.chunk.d729660f46f7f530.js
vendored
Normal file
1
public/js/discover~serverfeed.chunk.d729660f46f7f530.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/js/discover~settings.chunk.6f4b9b6a6ef5131a.js
vendored
Normal file
1
public/js/discover~settings.chunk.6f4b9b6a6ef5131a.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
"use strict";(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[7413],{94680:(a,t,e)=>{e.r(t),e.d(t,{default:()=>s});const s={components:{drawer:e(5787).default}}},50371:(a,t,e)=>{e.r(t),e.d(t,{default:()=>s});const s={data:function(){return{user:window._sharedData.user}}}},64513:(a,t,e)=>{e.r(t),e.d(t,{render:()=>s,staticRenderFns:()=>n});var s=function(){var a=this,t=a._self._c;return t("div",{staticClass:"container d-flex justify-content-center"},[a._m(0),a._v(" "),t("drawer")],1)},n=[function(){var a=this,t=a._self._c;return t("div",{staticClass:"error-page py-5 my-5",staticStyle:{"max-width":"450px"}},[t("h3",{staticClass:"font-weight-bold"},[a._v("404 Page Not Found")]),a._v(" "),t("p",{staticClass:"lead"},[a._v("The page you are trying to view is not available")]),a._v(" "),t("div",{staticClass:"text-muted"},[t("p",{staticClass:"mb-1"},[a._v("This can happen for a few reasons:")]),a._v(" "),t("ul",[t("li",[a._v("The url is invalid or has a typo")]),a._v(" "),t("li",[a._v("The page has been flagged for review by our automated abuse detection systems")]),a._v(" "),t("li",[a._v("The content may have been deleted")]),a._v(" "),t("li",[a._v("You do not have permission to view this content")])])])])}]},69831:(a,t,e)=>{e.r(t),e.d(t,{render:()=>s,staticRenderFns:()=>n});var s=function(){var a=this,t=a._self._c;return t("div",{staticClass:"app-drawer-component"},[t("div",{staticClass:"mobile-footer-spacer d-block d-sm-none mt-5"}),a._v(" "),t("div",{staticClass:"mobile-footer d-block d-sm-none fixed-bottom"},[t("div",{staticClass:"card card-body rounded-0 px-0 pt-2 pb-3 box-shadow",staticStyle:{"border-top":"1px solid var(--border-color)"}},[t("ul",{staticClass:"nav nav-pills nav-fill d-flex align-items-middle"},[t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web"}},[t("p",[t("i",{staticClass:"far fa-home fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("Home")])])])],1),a._v(" "),t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web/timeline/local"}},[t("p",[t("i",{staticClass:"far fa-stream fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("Local")])])])],1),a._v(" "),t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web/compose"}},[t("p",[t("i",{staticClass:"far fa-plus-circle fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("New")])])])],1),a._v(" "),t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web/notifications"}},[t("p",[t("i",{staticClass:"far fa-bell fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("Alerts")])])])],1),a._v(" "),t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web/profile/"+a.user.id}},[t("p",[t("i",{staticClass:"far fa-user fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("Profile")])])])],1)])])])])},n=[]},35518:(a,t,e)=>{e.r(t),e.d(t,{default:()=>l});var s=e(76798),n=e.n(s)()((function(a){return a[1]}));n.push([a.id,".app-drawer-component .nav-link{padding:.5rem .1rem}.app-drawer-component .nav-link.active{background-color:transparent}.app-drawer-component .nav-link.router-link-exact-active{background-color:transparent;color:var(--primary)!important}.app-drawer-component .nav-link p{margin-bottom:0}.app-drawer-component .nav-link-label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;margin-top:0;opacity:.6;text-transform:uppercase}",""]);const l=n},96259:(a,t,e)=>{e.r(t),e.d(t,{default:()=>r});var s=e(85072),n=e.n(s),l=e(35518),i={insert:"head",singleton:!1};n()(l.default,i);const r=l.default.locals||{}},13978:(a,t,e)=>{e.r(t),e.d(t,{default:()=>i});var s=e(72198),n=e(10117),l={};for(const a in n)"default"!==a&&(l[a]=()=>n[a]);e.d(t,l);const i=(0,e(14486).default)(n.default,s.render,s.staticRenderFns,!1,null,null,null).exports},5787:(a,t,e)=>{e.r(t),e.d(t,{default:()=>i});var s=e(16286),n=e(80260),l={};for(const a in n)"default"!==a&&(l[a]=()=>n[a]);e.d(t,l);e(68840);const i=(0,e(14486).default)(n.default,s.render,s.staticRenderFns,!1,null,null,null).exports},10117:(a,t,e)=>{e.r(t),e.d(t,{default:()=>l});var s=e(94680),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n);const l=s.default},80260:(a,t,e)=>{e.r(t),e.d(t,{default:()=>l});var s=e(50371),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n);const l=s.default},72198:(a,t,e)=>{e.r(t);var s=e(64513),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n)},16286:(a,t,e)=>{e.r(t);var s=e(69831),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n)},68840:(a,t,e)=>{e.r(t);var s=e(96259),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n)}}]);
|
||||
"use strict";(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[7413],{94680:(a,t,e)=>{e.r(t),e.d(t,{default:()=>s});const s={components:{drawer:e(5787).default}}},50371:(a,t,e)=>{e.r(t),e.d(t,{default:()=>s});const s={data:function(){return{user:window._sharedData.user}}}},64513:(a,t,e)=>{e.r(t),e.d(t,{render:()=>s,staticRenderFns:()=>n});var s=function(){var a=this,t=a._self._c;return t("div",{staticClass:"container d-flex justify-content-center"},[a._m(0),a._v(" "),t("drawer")],1)},n=[function(){var a=this,t=a._self._c;return t("div",{staticClass:"error-page py-5 my-5",staticStyle:{"max-width":"450px"}},[t("h3",{staticClass:"font-weight-bold"},[a._v("404 Page Not Found")]),a._v(" "),t("p",{staticClass:"lead"},[a._v("The page you are trying to view is not available")]),a._v(" "),t("div",{staticClass:"text-muted"},[t("p",{staticClass:"mb-1"},[a._v("This can happen for a few reasons:")]),a._v(" "),t("ul",[t("li",[a._v("The url is invalid or has a typo")]),a._v(" "),t("li",[a._v("The page has been flagged for review by our automated abuse detection systems")]),a._v(" "),t("li",[a._v("The content may have been deleted")]),a._v(" "),t("li",[a._v("You do not have permission to view this content")])])])])}]},69831:(a,t,e)=>{e.r(t),e.d(t,{render:()=>s,staticRenderFns:()=>n});var s=function(){var a=this,t=a._self._c;return t("div",{staticClass:"app-drawer-component"},[t("div",{staticClass:"mobile-footer-spacer d-block d-sm-none mt-5"}),a._v(" "),t("div",{staticClass:"mobile-footer d-block d-sm-none fixed-bottom"},[t("div",{staticClass:"card card-body rounded-0 px-0 pt-2 pb-3 box-shadow",staticStyle:{"border-top":"1px solid var(--border-color)"}},[t("ul",{staticClass:"nav nav-pills nav-fill d-flex align-items-middle"},[t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web"}},[t("p",[t("i",{staticClass:"far fa-home fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("Home")])])])],1),a._v(" "),t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web/timeline/local"}},[t("p",[t("i",{staticClass:"far fa-stream fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("Local")])])])],1),a._v(" "),t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web/compose"}},[t("p",[t("i",{staticClass:"far fa-plus-circle fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("New")])])])],1),a._v(" "),t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web/notifications"}},[t("p",[t("i",{staticClass:"far fa-bell fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("Alerts")])])])],1),a._v(" "),t("li",{staticClass:"nav-item"},[t("router-link",{staticClass:"nav-link text-dark",attrs:{to:"/i/web/profile/"+a.user.id}},[t("p",[t("i",{staticClass:"far fa-user fa-lg"})]),a._v(" "),t("p",{staticClass:"nav-link-label"},[t("span",[a._v("Profile")])])])],1)])])])])},n=[]},39005:(a,t,e)=>{e.r(t),e.d(t,{default:()=>l});var s=e(76798),n=e.n(s)()((function(a){return a[1]}));n.push([a.id,".app-drawer-component .nav-link{padding:.5rem .1rem}.app-drawer-component .nav-link.active{background-color:transparent}.app-drawer-component .nav-link.router-link-exact-active{background-color:transparent;color:var(--primary)!important}.app-drawer-component .nav-link p{margin-bottom:0}.app-drawer-component .nav-link-label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;margin-top:0;opacity:.6;text-transform:uppercase}",""]);const l=n},74688:(a,t,e)=>{e.r(t),e.d(t,{default:()=>r});var s=e(85072),n=e.n(s),l=e(39005),i={insert:"head",singleton:!1};n()(l.default,i);const r=l.default.locals||{}},13978:(a,t,e)=>{e.r(t),e.d(t,{default:()=>i});var s=e(72198),n=e(10117),l={};for(const a in n)"default"!==a&&(l[a]=()=>n[a]);e.d(t,l);const i=(0,e(14486).default)(n.default,s.render,s.staticRenderFns,!1,null,null,null).exports},5787:(a,t,e)=>{e.r(t),e.d(t,{default:()=>i});var s=e(16286),n=e(80260),l={};for(const a in n)"default"!==a&&(l[a]=()=>n[a]);e.d(t,l);e(89069);const i=(0,e(14486).default)(n.default,s.render,s.staticRenderFns,!1,null,null,null).exports},10117:(a,t,e)=>{e.r(t),e.d(t,{default:()=>l});var s=e(94680),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n);const l=s.default},80260:(a,t,e)=>{e.r(t),e.d(t,{default:()=>l});var s=e(50371),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n);const l=s.default},72198:(a,t,e)=>{e.r(t);var s=e(64513),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n)},16286:(a,t,e)=>{e.r(t);var s=e(69831),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n)},89069:(a,t,e)=>{e.r(t);var s=e(74688),n={};for(const a in s)"default"!==a&&(n[a]=()=>s[a]);e.d(t,n)}}]);
|
2
public/js/group-status.js
vendored
2
public/js/group-status.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/group-topic-feed.js
vendored
2
public/js/group-topic-feed.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
"use strict";(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[2822],{96140:(t,e,a)=>{a.r(e),a.d(e,{default:()=>d});var o=a(26679),n=a(16080),r=a(49139);const d={components:{sidebar:o.default,loader:n.default,"create-group":r.default},data:function(){return{loaded:!1,loadTimeout:void 0}},created:function(){var t=this;this.loadTimeout=setTimeout((function(){t.loaded=!0}),1e3)},beforeUnmount:function(){clearTimeout(this.loadTimeout)}}},42360:(t,e,a)=>{a.r(e),a.d(e,{render:()=>o,staticRenderFns:()=>n});var o=function(){var t=this._self._c;return t("div",{staticClass:"group-notifications-component"},[t("div",{staticClass:"row border-bottom m-0 p-0"},[t("sidebar"),this._v(" "),t("create-group")],1)])},n=[]},36015:(t,e,a)=>{a.r(e),a.d(e,{default:()=>r});var o=a(76798),n=a.n(o)()((function(t){return t[1]}));n.push([t.id,".group-notifications-component[data-v-a4ffe9ee]{font-family:var(--font-family-sans-serif)}.group-notifications-component .jumbotron[data-v-a4ffe9ee]{background-color:#fff;border-radius:0}",""]);const r=n},3850:(t,e,a)=>{a.r(e),a.d(e,{default:()=>f});var o=a(85072),n=a.n(o),r=a(36015),d={insert:"head",singleton:!1};n()(r.default,d);const f=r.default.locals||{}},22500:(t,e,a)=>{a.r(e),a.d(e,{default:()=>d});var o=a(47393),n=a(67988),r={};for(const t in n)"default"!==t&&(r[t]=()=>n[t]);a.d(e,r);a(82989);const d=(0,a(14486).default)(n.default,o.render,o.staticRenderFns,!1,null,"a4ffe9ee",null).exports},67988:(t,e,a)=>{a.r(e),a.d(e,{default:()=>r});var o=a(96140),n={};for(const t in o)"default"!==t&&(n[t]=()=>o[t]);a.d(e,n);const r=o.default},47393:(t,e,a)=>{a.r(e);var o=a(42360),n={};for(const t in o)"default"!==t&&(n[t]=()=>o[t]);a.d(e,n)},82989:(t,e,a)=>{a.r(e);var o=a(3850),n={};for(const t in o)"default"!==t&&(n[t]=()=>o[t]);a.d(e,n)}}]);
|
||||
"use strict";(self.webpackChunkpixelfed=self.webpackChunkpixelfed||[]).push([[2822],{96140:(t,e,a)=>{a.r(e),a.d(e,{default:()=>d});var o=a(26679),n=a(16080),r=a(49139);const d={components:{sidebar:o.default,loader:n.default,"create-group":r.default},data:function(){return{loaded:!1,loadTimeout:void 0}},created:function(){var t=this;this.loadTimeout=setTimeout((function(){t.loaded=!0}),1e3)},beforeUnmount:function(){clearTimeout(this.loadTimeout)}}},42360:(t,e,a)=>{a.r(e),a.d(e,{render:()=>o,staticRenderFns:()=>n});var o=function(){var t=this._self._c;return t("div",{staticClass:"group-notifications-component"},[t("div",{staticClass:"row border-bottom m-0 p-0"},[t("sidebar"),this._v(" "),t("create-group")],1)])},n=[]},12712:(t,e,a)=>{a.r(e),a.d(e,{default:()=>r});var o=a(76798),n=a.n(o)()((function(t){return t[1]}));n.push([t.id,".group-notifications-component[data-v-a4ffe9ee]{font-family:var(--font-family-sans-serif)}.group-notifications-component .jumbotron[data-v-a4ffe9ee]{background-color:#fff;border-radius:0}",""]);const r=n},7685:(t,e,a)=>{a.r(e),a.d(e,{default:()=>f});var o=a(85072),n=a.n(o),r=a(12712),d={insert:"head",singleton:!1};n()(r.default,d);const f=r.default.locals||{}},22500:(t,e,a)=>{a.r(e),a.d(e,{default:()=>d});var o=a(47393),n=a(67988),r={};for(const t in n)"default"!==t&&(r[t]=()=>n[t]);a.d(e,r);a(61784);const d=(0,a(14486).default)(n.default,o.render,o.staticRenderFns,!1,null,"a4ffe9ee",null).exports},67988:(t,e,a)=>{a.r(e),a.d(e,{default:()=>r});var o=a(96140),n={};for(const t in o)"default"!==t&&(n[t]=()=>o[t]);a.d(e,n);const r=o.default},47393:(t,e,a)=>{a.r(e);var o=a(42360),n={};for(const t in o)"default"!==t&&(n[t]=()=>o[t]);a.d(e,n)},61784:(t,e,a)=>{a.r(e);var o=a(7685),n={};for(const t in o)"default"!==t&&(n[t]=()=>o[t]);a.d(e,n)}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/js/groups.js
vendored
2
public/js/groups.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/hashtag.js
vendored
2
public/js/hashtag.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/home.chunk.1d1e6fe050aaaf98.js
vendored
2
public/js/home.chunk.1d1e6fe050aaaf98.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/home.chunk.491ce6f986e08bb3.js
vendored
Normal file
2
public/js/home.chunk.491ce6f986e08bb3.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/js/landing.js
vendored
2
public/js/landing.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/manifest.js
vendored
2
public/js/manifest.js
vendored
|
@ -1 +1 @@
|
|||
(()=>{"use strict";var e,r,o,a={},t={};function n(e){var r=t[e];if(void 0!==r)return r.exports;var o=t[e]={id:e,loaded:!1,exports:{}};return a[e].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=a,e=[],n.O=(r,o,a,t)=>{if(!o){var d=1/0;for(f=0;f<e.length;f++){for(var[o,a,t]=e[f],c=!0,i=0;i<o.length;i++)(!1&t||d>=t)&&Object.keys(n.O).every((e=>n.O[e](o[i])))?o.splice(i--,1):(c=!1,t<d&&(d=t));if(c){e.splice(f--,1);var s=a();void 0!==s&&(r=s)}}return r}t=t||0;for(var f=e.length;f>0&&e[f-1][2]>t;f--)e[f]=e[f-1];e[f]=[o,a,t]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var o in r)n.o(r,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((r,o)=>(n.f[o](e,r),r)),[])),n.u=e=>"js/"+{529:"groups-page",1179:"daci.chunk",1240:"discover~myhashtags.chunk",1645:"profile~following.bundle",2156:"dms.chunk",2822:"group.create",2966:"discover~hashtag.bundle",3688:"discover~serverfeed.chunk",4951:"home.chunk",6250:"discover~settings.chunk",6438:"groups-page-media",6535:"discover.chunk",6740:"discover~memories.chunk",6791:"groups-page-members",7206:"groups-page-topics",7342:"groups-post",7399:"dms~message.chunk",7413:"error404.bundle",7521:"discover~findfriends.chunk",7744:"notifications.chunk",8087:"profile.chunk",8119:"i18n.bundle",8257:"groups-page-about",8408:"post.chunk",8977:"profile~followers.bundle",9124:"compose.chunk",9231:"groups-profile",9919:"changelog.bundle"}[e]+"."+{529:"86e723ad211c456d",1179:"5dbd1faea828ed0b",1240:"f068eadda9058061",1645:"46e6ecfbbf28d2c7",2156:"1768ba82cee30612",2822:"2fb3882ca480a0a2",2966:"2ab0025b9827bd11",3688:"9d3ce36a12533da5",4951:"1d1e6fe050aaaf98",6250:"61e5007e3e383807",6438:"60587cd38c4cd089",6535:"4b677d22775c2e13",6740:"c59b92ebe85d45cf",6791:"e7866ecfe1fad40e",7206:"b78ab423f7174566",7342:"89ef401bc3e4338f",7399:"5f4e1fc636c70a14",7413:"62723d31c3df8cfa",7521:"f3e42b724965b63c",7744:"64d01f70d8fd0ff4",8087:"75eb020992ddb4dd",8119:"967974248a457514",8257:"717e51a079fedb67",8408:"af21320999ba64af",8977:"3f7b29165d67f18c",9124:"52e7225ee6c74bad",9231:"425f35dbfc98bccc",9919:"f4870a4224d34715"}[e]+".js",n.miniCssF=e=>({2305:"css/portfolio",2540:"css/landing",3364:"css/admin",6952:"css/appdark",8252:"css/app",8759:"css/spa"}[e]+".css"),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},o="pixelfed:",n.l=(e,a,t,d)=>{if(r[e])r[e].push(a);else{var c,i;if(void 0!==t)for(var s=document.getElementsByTagName("script"),f=0;f<s.length;f++){var u=s[f];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+t){c=u;break}}c||(i=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,n.nc&&c.setAttribute("nonce",n.nc),c.setAttribute("data-webpack",o+t),c.src=e),r[e]=[a];var l=(o,a)=>{c.onerror=c.onload=null,clearTimeout(p);var t=r[e];if(delete r[e],c.parentNode&&c.parentNode.removeChild(c),t&&t.forEach((e=>e(a))),o)return o(a)},p=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),i&&document.head.appendChild(c)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="/",(()=>{var e={461:0,6952:0,8252:0,2305:0,3364:0,2540:0,8759:0};n.f.j=(r,o)=>{var a=n.o(e,r)?e[r]:void 0;if(0!==a)if(a)o.push(a[2]);else if(/^((69|82)52|2305|2540|3364|461|8759)$/.test(r))e[r]=0;else{var t=new Promise(((o,t)=>a=e[r]=[o,t]));o.push(a[2]=t);var d=n.p+n.u(r),c=new Error;n.l(d,(o=>{if(n.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var t=o&&("load"===o.type?"missing":o.type),d=o&&o.target&&o.target.src;c.message="Loading chunk "+r+" failed.\n("+t+": "+d+")",c.name="ChunkLoadError",c.type=t,c.request=d,a[1](c)}}),"chunk-"+r,r)}},n.O.j=r=>0===e[r];var r=(r,o)=>{var a,t,[d,c,i]=o,s=0;if(d.some((r=>0!==e[r]))){for(a in c)n.o(c,a)&&(n.m[a]=c[a]);if(i)var f=i(n)}for(r&&r(o);s<d.length;s++)t=d[s],n.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return n.O(f)},o=self.webpackChunkpixelfed=self.webpackChunkpixelfed||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})(),n.nc=void 0})();
|
||||
(()=>{"use strict";var e,r,o,t={},a={};function n(e){var r=a[e];if(void 0!==r)return r.exports;var o=a[e]={id:e,loaded:!1,exports:{}};return t[e].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=t,e=[],n.O=(r,o,t,a)=>{if(!o){var d=1/0;for(f=0;f<e.length;f++){for(var[o,t,a]=e[f],s=!0,i=0;i<o.length;i++)(!1&a||d>=a)&&Object.keys(n.O).every((e=>n.O[e](o[i])))?o.splice(i--,1):(s=!1,a<d&&(d=a));if(s){e.splice(f--,1);var c=t();void 0!==c&&(r=c)}}return r}a=a||0;for(var f=e.length;f>0&&e[f-1][2]>a;f--)e[f]=e[f-1];e[f]=[o,t,a]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var o in r)n.o(r,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((r,o)=>(n.f[o](e,r),r)),[])),n.u=e=>"js/"+{529:"groups-page",1179:"daci.chunk",1240:"discover~myhashtags.chunk",1645:"profile~following.bundle",2156:"dms.chunk",2822:"group.create",2966:"discover~hashtag.bundle",3688:"discover~serverfeed.chunk",4951:"home.chunk",6250:"discover~settings.chunk",6438:"groups-page-media",6535:"discover.chunk",6740:"discover~memories.chunk",6791:"groups-page-members",7206:"groups-page-topics",7342:"groups-post",7399:"dms~message.chunk",7413:"error404.bundle",7521:"discover~findfriends.chunk",7744:"notifications.chunk",8087:"profile.chunk",8119:"i18n.bundle",8257:"groups-page-about",8408:"post.chunk",8977:"profile~followers.bundle",9124:"compose.chunk",9231:"groups-profile",9919:"changelog.bundle"}[e]+"."+{529:"acb1312c8fa28603",1179:"5bb69fda8fdedc47",1240:"29b97f80a1338877",1645:"7a592645bb9eb11f",2156:"49ae3599d4dba309",2822:"e6f580f22769b687",2966:"94de7a1013d118bf",3688:"d729660f46f7f530",4951:"491ce6f986e08bb3",6250:"6f4b9b6a6ef5131a",6438:"660d310e20bb9451",6535:"b5e4952e4d62342b",6740:"398b63b5473c6be6",6791:"9e6e807b47585ba8",7206:"d51e24af2273e3c4",7342:"89ef401bc3e4338f",7399:"61293d7251878a18",7413:"9200c0b8734654fb",7521:"2392a288a9031530",7744:"f04bf557f846d93a",8087:"164b255884ed6d1c",8119:"873216ad86c80486",8257:"f104deafd36d2813",8408:"13919bcfbfc2d438",8977:"fa171ea239061d55",9124:"34ebded0861594ef",9231:"2d5b53d784146dd1",9919:"da47c74f7034447a"}[e]+".js",n.miniCssF=e=>({2305:"css/portfolio",2540:"css/landing",3364:"css/admin",4370:"css/profile",6952:"css/appdark",8252:"css/app",8759:"css/spa"}[e]+".css"),n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},o="pixelfed:",n.l=(e,t,a,d)=>{if(r[e])r[e].push(t);else{var s,i;if(void 0!==a)for(var c=document.getElementsByTagName("script"),f=0;f<c.length;f++){var u=c[f];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+a){s=u;break}}s||(i=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,n.nc&&s.setAttribute("nonce",n.nc),s.setAttribute("data-webpack",o+a),s.src=e),r[e]=[t];var l=(o,t)=>{s.onerror=s.onload=null,clearTimeout(b);var a=r[e];if(delete r[e],s.parentNode&&s.parentNode.removeChild(s),a&&a.forEach((e=>e(t))),o)return o(t)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),i&&document.head.appendChild(s)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="/",(()=>{var e={461:0,6952:0,8252:0,2305:0,3364:0,2540:0,4370:0,8759:0};n.f.j=(r,o)=>{var t=n.o(e,r)?e[r]:void 0;if(0!==t)if(t)o.push(t[2]);else if(/^((69|82)52|2305|2540|3364|4370|461|8759)$/.test(r))e[r]=0;else{var a=new Promise(((o,a)=>t=e[r]=[o,a]));o.push(t[2]=a);var d=n.p+n.u(r),s=new Error;n.l(d,(o=>{if(n.o(e,r)&&(0!==(t=e[r])&&(e[r]=void 0),t)){var a=o&&("load"===o.type?"missing":o.type),d=o&&o.target&&o.target.src;s.message="Loading chunk "+r+" failed.\n("+a+": "+d+")",s.name="ChunkLoadError",s.type=a,s.request=d,t[1](s)}}),"chunk-"+r,r)}},n.O.j=r=>0===e[r];var r=(r,o)=>{var t,a,[d,s,i]=o,c=0;if(d.some((r=>0!==e[r]))){for(t in s)n.o(s,t)&&(n.m[t]=s[t]);if(i)var f=i(n)}for(r&&r(o);c<d.length;c++)a=d[c],n.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return n.O(f)},o=self.webpackChunkpixelfed=self.webpackChunkpixelfed||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})(),n.nc=void 0})();
|
File diff suppressed because one or more lines are too long
2
public/js/portfolio.js
vendored
2
public/js/portfolio.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/post.chunk.13919bcfbfc2d438.js
vendored
Normal file
2
public/js/post.chunk.13919bcfbfc2d438.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
public/js/post.chunk.af21320999ba64af.js
vendored
2
public/js/post.chunk.af21320999ba64af.js
vendored
File diff suppressed because one or more lines are too long
1
public/js/profile.chunk.164b255884ed6d1c.js
vendored
Normal file
1
public/js/profile.chunk.164b255884ed6d1c.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
public/js/profile.chunk.75eb020992ddb4dd.js
vendored
1
public/js/profile.chunk.75eb020992ddb4dd.js
vendored
File diff suppressed because one or more lines are too long
3
public/js/profile.js
vendored
3
public/js/profile.js
vendored
File diff suppressed because one or more lines are too long
1
public/js/profile.js.LICENSE.txt
Normal file
1
public/js/profile.js.LICENSE.txt
Normal file
|
@ -0,0 +1 @@
|
|||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
public/js/remote_auth.js
vendored
2
public/js/remote_auth.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/search.js
vendored
2
public/js/search.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/spa.js
vendored
2
public/js/spa.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/status.js
vendored
2
public/js/status.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/stories.js
vendored
2
public/js/stories.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/story-compose.js
vendored
2
public/js/story-compose.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/timeline.js
vendored
2
public/js/timeline.js
vendored
File diff suppressed because one or more lines are too long
2
public/js/vendor.js
vendored
2
public/js/vendor.js
vendored
File diff suppressed because one or more lines are too long
|
@ -40,6 +40,12 @@
|
|||
* Date: 2024-04-21T07:43:05.335Z
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Glide.js v3.6.2
|
||||
* (c) 2013-2024 Jędrzej Chałubek (https://github.com/jedrzejchalubek/)
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* JavaScript Cookie v2.2.1
|
||||
* https://github.com/js-cookie/js-cookie
|
||||
|
|
|
@ -1,66 +1,67 @@
|
|||
{
|
||||
"/js/app.js": "/js/app.js?id=3688fe4a647f902efc642afb1a50984e",
|
||||
"/js/app.js": "/js/app.js?id=50241f84562f0bf8dc235fc1701aa71d",
|
||||
"/js/activity.js": "/js/activity.js?id=bfd922cbbc1327e750bc2d4dc15a0890",
|
||||
"/js/components.js": "/js/components.js?id=ebf743614d3b943541f868a0bc3db9d8",
|
||||
"/js/components.js": "/js/components.js?id=9b6f094bb7d0e43a737ed1d1756f8653",
|
||||
"/js/discover.js": "/js/discover.js?id=7c90d36829dfe34f19f5d1f545107db7",
|
||||
"/js/profile.js": "/js/profile.js?id=30bd41ecc80869c86f73951b6637c54c",
|
||||
"/js/status.js": "/js/status.js?id=87e6c320f07ff6ac9818b593a72fe757",
|
||||
"/js/timeline.js": "/js/timeline.js?id=500378a123d8933a6ae7b322d3b0e1ff",
|
||||
"/js/compose.js": "/js/compose.js?id=6fb020901b8f5176aff45389b8d02b62",
|
||||
"/js/compose-classic.js": "/js/compose-classic.js?id=73f7993759f12417a544364c320e273b",
|
||||
"/js/search.js": "/js/search.js?id=c82889a5ffe1b1abf0fcdc6428e5963c",
|
||||
"/js/developers.js": "/js/developers.js?id=0f19b32cd50a574800ffe234d52e7055",
|
||||
"/js/hashtag.js": "/js/hashtag.js?id=82ac43b9dc33c4bfd20ab89ca69cfb87",
|
||||
"/js/profile.js": "/js/profile.js?id=c207130ea4ca11e2c38cb5c95c362bf9",
|
||||
"/js/status.js": "/js/status.js?id=ab8db98a6f8c88d0aa44761303835c00",
|
||||
"/js/timeline.js": "/js/timeline.js?id=fe60e818a87fc50a0cea15c6937f15a7",
|
||||
"/js/compose.js": "/js/compose.js?id=5d33cb0795e845a82e6b33d18d6fd0a5",
|
||||
"/js/compose-classic.js": "/js/compose-classic.js?id=25300467f8cc5d0cf48353ad2a15f9b6",
|
||||
"/js/search.js": "/js/search.js?id=63cf7a7bafc600cdfe5d7bdebfaa76f7",
|
||||
"/js/developers.js": "/js/developers.js?id=4de04f01dea35c4958fb820647e6496d",
|
||||
"/js/hashtag.js": "/js/hashtag.js?id=ca4d741ec899bf451c8f1a5342e3646d",
|
||||
"/js/collectioncompose.js": "/js/collectioncompose.js?id=6a82bb847278f940e9755c649050393f",
|
||||
"/js/collections.js": "/js/collections.js?id=0df66a66ccffbc4bb4523b7779277bfa",
|
||||
"/js/collections.js": "/js/collections.js?id=6ca5e5e9a9de45afa53653a89843fe8b",
|
||||
"/js/profile-directory.js": "/js/profile-directory.js?id=1615064235d2acf08d84c3e3d1232d7e",
|
||||
"/js/story-compose.js": "/js/story-compose.js?id=b2e2b2dc1de8447abb2f66094ad5931d",
|
||||
"/js/direct.js": "/js/direct.js?id=05b35e4beaa4f5436622b503ff6641e9",
|
||||
"/js/admin.js": "/js/admin.js?id=084a522b97603678753a786578154414",
|
||||
"/js/spa.js": "/js/spa.js?id=72a9d9da95dbcb3901550c916b65f26d",
|
||||
"/js/stories.js": "/js/stories.js?id=9fed38c4d14afbf7375996a214658543",
|
||||
"/js/portfolio.js": "/js/portfolio.js?id=d53caf31d3ef87b47fbc51a31ff943f8",
|
||||
"/js/account-import.js": "/js/account-import.js?id=f3af3489152f40f4eb11589e41ae8dcc",
|
||||
"/js/admin_invite.js": "/js/admin_invite.js?id=0a0036f59cfb186f7698207ae432365b",
|
||||
"/js/landing.js": "/js/landing.js?id=9267969736e1eb9dc49d1c999dc5f9fd",
|
||||
"/js/remote_auth.js": "/js/remote_auth.js?id=b865b7d13bb927c0f66c6fc79109fe03",
|
||||
"/js/groups.js": "/js/groups.js?id=c412fb206fe04188cd956ffbf8b727c9",
|
||||
"/js/group-status.js": "/js/group-status.js?id=18eade1c388533a28b1ee60edf2be876",
|
||||
"/js/group-topic-feed.js": "/js/group-topic-feed.js?id=94fda768f4f1e3d12122265466e1084e",
|
||||
"/js/manifest.js": "/js/manifest.js?id=18686b12fa47f46f56665be2af9c4fd2",
|
||||
"/js/home.chunk.1d1e6fe050aaaf98.js": "/js/home.chunk.1d1e6fe050aaaf98.js?id=538deffd75a8ca4810e232f75fa83188",
|
||||
"/js/compose.chunk.52e7225ee6c74bad.js": "/js/compose.chunk.52e7225ee6c74bad.js?id=65108df15bc9517e020273ec661ddde8",
|
||||
"/js/post.chunk.af21320999ba64af.js": "/js/post.chunk.af21320999ba64af.js?id=f0c93514951b777e7de5171aee1e0dbe",
|
||||
"/js/profile.chunk.75eb020992ddb4dd.js": "/js/profile.chunk.75eb020992ddb4dd.js?id=1e74754bd0d7bfcfd730d11081081d89",
|
||||
"/js/discover~memories.chunk.c59b92ebe85d45cf.js": "/js/discover~memories.chunk.c59b92ebe85d45cf.js?id=fa0d90d052162232c04cbde075f984f9",
|
||||
"/js/discover~myhashtags.chunk.f068eadda9058061.js": "/js/discover~myhashtags.chunk.f068eadda9058061.js?id=251b4401554fc4425a66ebbd1824017f",
|
||||
"/js/daci.chunk.5dbd1faea828ed0b.js": "/js/daci.chunk.5dbd1faea828ed0b.js?id=4e0e517181861068d8851ba49a33e6d5",
|
||||
"/js/discover~findfriends.chunk.f3e42b724965b63c.js": "/js/discover~findfriends.chunk.f3e42b724965b63c.js?id=cf769cea371bce4a6a53c290906d9ccc",
|
||||
"/js/discover~serverfeed.chunk.9d3ce36a12533da5.js": "/js/discover~serverfeed.chunk.9d3ce36a12533da5.js?id=25b833ab77c9a1458abdb75738744372",
|
||||
"/js/discover~settings.chunk.61e5007e3e383807.js": "/js/discover~settings.chunk.61e5007e3e383807.js?id=a8b789ac7daa342c9732356cfc0437af",
|
||||
"/js/discover.chunk.4b677d22775c2e13.js": "/js/discover.chunk.4b677d22775c2e13.js?id=7f522ddc1b2b4c96c57d3c454aa7ad68",
|
||||
"/js/notifications.chunk.64d01f70d8fd0ff4.js": "/js/notifications.chunk.64d01f70d8fd0ff4.js?id=9bc6e80e6123a76cb9d8e1a22dda382f",
|
||||
"/js/dms.chunk.1768ba82cee30612.js": "/js/dms.chunk.1768ba82cee30612.js?id=6ee7623d76fdf4293e001674226e6234",
|
||||
"/js/dms~message.chunk.5f4e1fc636c70a14.js": "/js/dms~message.chunk.5f4e1fc636c70a14.js?id=b885cb38262e4b8d8af4848053e31b1c",
|
||||
"/js/profile~followers.bundle.3f7b29165d67f18c.js": "/js/profile~followers.bundle.3f7b29165d67f18c.js?id=b0bbfbe5365ede8e84b7c2dfbcfb8ded",
|
||||
"/js/profile~following.bundle.46e6ecfbbf28d2c7.js": "/js/profile~following.bundle.46e6ecfbbf28d2c7.js?id=6c9ba0113f4b5043e047f5aad143c212",
|
||||
"/js/discover~hashtag.bundle.2ab0025b9827bd11.js": "/js/discover~hashtag.bundle.2ab0025b9827bd11.js?id=89c4682544c9448db71da52bd25828aa",
|
||||
"/js/error404.bundle.62723d31c3df8cfa.js": "/js/error404.bundle.62723d31c3df8cfa.js?id=d670737f4f52f3ecac26865c18cc585d",
|
||||
"/js/i18n.bundle.967974248a457514.js": "/js/i18n.bundle.967974248a457514.js?id=e5e54bee20522182d903896bb8c07213",
|
||||
"/js/changelog.bundle.f4870a4224d34715.js": "/js/changelog.bundle.f4870a4224d34715.js?id=708dff79fc1945652ff7fbf41b030a5e",
|
||||
"/js/group.create.2fb3882ca480a0a2.js": "/js/group.create.2fb3882ca480a0a2.js?id=5d5bd78fe99ea4fd618c6837dd56a7fe",
|
||||
"/js/story-compose.js": "/js/story-compose.js?id=d00b2c9a150252f4cacddeb468801e17",
|
||||
"/js/direct.js": "/js/direct.js?id=7a0b09f5b03a1fa8f265d177f67a7172",
|
||||
"/js/admin.js": "/js/admin.js?id=de062823f451d36acb59590ee15e7f4d",
|
||||
"/js/spa.js": "/js/spa.js?id=d5a416af3840ece7687f3379df3df440",
|
||||
"/js/stories.js": "/js/stories.js?id=24ba9c76aa33617d90f2d8a9167ab67c",
|
||||
"/js/portfolio.js": "/js/portfolio.js?id=49986da10c18bc3dd5365ccc71081416",
|
||||
"/js/account-import.js": "/js/account-import.js?id=d9ba1692392f6d45780d3dbbe03a2cb7",
|
||||
"/js/admin_invite.js": "/js/admin_invite.js?id=8b69ab56241240a65a5efeec0187c980",
|
||||
"/js/landing.js": "/js/landing.js?id=6aa27105376c0b2dffa00d9d09359446",
|
||||
"/js/remote_auth.js": "/js/remote_auth.js?id=add755c42e7ce77d20e300a8e0e13c23",
|
||||
"/js/groups.js": "/js/groups.js?id=e70f0350caf2e1d67b0b78a9b3c822c2",
|
||||
"/js/group-status.js": "/js/group-status.js?id=23571c70f2794de54541e127ae1f3369",
|
||||
"/js/group-topic-feed.js": "/js/group-topic-feed.js?id=16fa7d88f104424ad33c244af6cf5d77",
|
||||
"/js/manifest.js": "/js/manifest.js?id=994f9b466e0053efe8e0a3f87126699f",
|
||||
"/js/home.chunk.491ce6f986e08bb3.js": "/js/home.chunk.491ce6f986e08bb3.js?id=b31a21076f03aaf4bcab7c947cf7e7c5",
|
||||
"/js/compose.chunk.34ebded0861594ef.js": "/js/compose.chunk.34ebded0861594ef.js?id=b3423e85ceaa84d05021458186f5d73a",
|
||||
"/js/post.chunk.13919bcfbfc2d438.js": "/js/post.chunk.13919bcfbfc2d438.js?id=b8929b95f024691cfcc00a9bb0aa003d",
|
||||
"/js/profile.chunk.164b255884ed6d1c.js": "/js/profile.chunk.164b255884ed6d1c.js?id=98301eb3bc0ef9e850a64037515535f5",
|
||||
"/js/discover~memories.chunk.398b63b5473c6be6.js": "/js/discover~memories.chunk.398b63b5473c6be6.js?id=a81bccb2f28ce9b7702610b0bd4f7823",
|
||||
"/js/discover~myhashtags.chunk.29b97f80a1338877.js": "/js/discover~myhashtags.chunk.29b97f80a1338877.js?id=9fd312150f5c9d531cb7e6d54218dd99",
|
||||
"/js/daci.chunk.5bb69fda8fdedc47.js": "/js/daci.chunk.5bb69fda8fdedc47.js?id=36337830db408b8e38fd4b866e361371",
|
||||
"/js/discover~findfriends.chunk.2392a288a9031530.js": "/js/discover~findfriends.chunk.2392a288a9031530.js?id=f31b4763e0b1bdab4911af8386733c05",
|
||||
"/js/discover~serverfeed.chunk.d729660f46f7f530.js": "/js/discover~serverfeed.chunk.d729660f46f7f530.js?id=5152c3c50e7a5a9af189fc18daaebf7d",
|
||||
"/js/discover~settings.chunk.6f4b9b6a6ef5131a.js": "/js/discover~settings.chunk.6f4b9b6a6ef5131a.js?id=5822d249c5a79b248856b77fe6d2b2cd",
|
||||
"/js/discover.chunk.b5e4952e4d62342b.js": "/js/discover.chunk.b5e4952e4d62342b.js?id=f51e4da437a46aaf5d0540641ccbc88b",
|
||||
"/js/notifications.chunk.f04bf557f846d93a.js": "/js/notifications.chunk.f04bf557f846d93a.js?id=3c71c0134bcc32bf7f91f82f1e5fa27f",
|
||||
"/js/dms.chunk.49ae3599d4dba309.js": "/js/dms.chunk.49ae3599d4dba309.js?id=1f8c5e7e35e30e73e070f82de123b5d8",
|
||||
"/js/dms~message.chunk.61293d7251878a18.js": "/js/dms~message.chunk.61293d7251878a18.js?id=2eacf2e94ec7fb418f3e6d4276971732",
|
||||
"/js/profile~followers.bundle.fa171ea239061d55.js": "/js/profile~followers.bundle.fa171ea239061d55.js?id=ae2d400c3bcf480686ecbf90ef4a66ed",
|
||||
"/js/profile~following.bundle.7a592645bb9eb11f.js": "/js/profile~following.bundle.7a592645bb9eb11f.js?id=3956330a33e993d1c7259b679f5953b5",
|
||||
"/js/discover~hashtag.bundle.94de7a1013d118bf.js": "/js/discover~hashtag.bundle.94de7a1013d118bf.js?id=c9aa656e99c12e264012d0089909f7c4",
|
||||
"/js/error404.bundle.9200c0b8734654fb.js": "/js/error404.bundle.9200c0b8734654fb.js?id=5ed4f77d9dce508677d90200fb9e81cd",
|
||||
"/js/i18n.bundle.873216ad86c80486.js": "/js/i18n.bundle.873216ad86c80486.js?id=81b682d300258e41f2fd575562119e95",
|
||||
"/js/changelog.bundle.da47c74f7034447a.js": "/js/changelog.bundle.da47c74f7034447a.js?id=8445c18302c31c1d7d974e08db9b6a6d",
|
||||
"/js/group.create.e6f580f22769b687.js": "/js/group.create.e6f580f22769b687.js?id=40ea73e52db6d7d395505264d3d178c8",
|
||||
"/js/groups-post.89ef401bc3e4338f.js": "/js/groups-post.89ef401bc3e4338f.js?id=a0288be80a4d17f5c966c71d6253f663",
|
||||
"/js/groups-profile.425f35dbfc98bccc.js": "/js/groups-profile.425f35dbfc98bccc.js?id=37b3fb370dde564ccf1ced7450017d74",
|
||||
"/js/groups-page-about.717e51a079fedb67.js": "/js/groups-page-about.717e51a079fedb67.js?id=2f5db406a797d068eb7d50131a35c2e2",
|
||||
"/js/groups-page-topics.b78ab423f7174566.js": "/js/groups-page-topics.b78ab423f7174566.js?id=0cca3ba93c96f4edd5e1d332b5ac1a37",
|
||||
"/js/groups-page-members.e7866ecfe1fad40e.js": "/js/groups-page-members.e7866ecfe1fad40e.js?id=2e5b81fc74169d57a86cbf3d2494fd9a",
|
||||
"/js/groups-page-media.60587cd38c4cd089.js": "/js/groups-page-media.60587cd38c4cd089.js?id=a00e4e973ea6a287fd4b04ee4c86242e",
|
||||
"/js/groups-page.86e723ad211c456d.js": "/js/groups-page.86e723ad211c456d.js?id=800db6e30e9ad131b73ccb8888b814e4",
|
||||
"/js/groups-profile.2d5b53d784146dd1.js": "/js/groups-profile.2d5b53d784146dd1.js?id=399deea282e639d488852a4f2a7a6d8b",
|
||||
"/js/groups-page-about.f104deafd36d2813.js": "/js/groups-page-about.f104deafd36d2813.js?id=d236c4c5ded0ab16516355ad812f43e0",
|
||||
"/js/groups-page-topics.d51e24af2273e3c4.js": "/js/groups-page-topics.d51e24af2273e3c4.js?id=df82af62cf62ce5df4467ced6b5b0f6b",
|
||||
"/js/groups-page-members.9e6e807b47585ba8.js": "/js/groups-page-members.9e6e807b47585ba8.js?id=66283477f45f98715dabab228b58a70b",
|
||||
"/js/groups-page-media.660d310e20bb9451.js": "/js/groups-page-media.660d310e20bb9451.js?id=63ced28b7fed630b5557ed31936a5daa",
|
||||
"/js/groups-page.acb1312c8fa28603.js": "/js/groups-page.acb1312c8fa28603.js?id=ca5e177a511b14de259003ad2f96ef47",
|
||||
"/css/appdark.css": "/css/appdark.css?id=3cbc92b4784f57c91681c8a7ede0db5f",
|
||||
"/css/app.css": "/css/app.css?id=e10a6f66100a7c9bc1facc89f655de0a",
|
||||
"/css/portfolio.css": "/css/portfolio.css?id=d98e354f173c6a8b729626384dceaa90",
|
||||
"/css/admin.css": "/css/admin.css?id=20cdb9cce61b0e1bd9fb1aad30efcd2f",
|
||||
"/css/landing.css": "/css/landing.css?id=b6e73c3924453e3053aff7d192895d8c",
|
||||
"/css/profile.css": "/css/profile.css?id=ae4f5db9bb1a89db2ae293d6bde812e3",
|
||||
"/css/spa.css": "/css/spa.css?id=041aed9a146db0e74b2cfe3ad8eaf96c",
|
||||
"/js/vendor.js": "/js/vendor.js?id=8658470662b19f6a399f2c5cad224849"
|
||||
"/js/vendor.js": "/js/vendor.js?id=f058d2814d504b63253b834e4d38de19"
|
||||
}
|
||||
|
|
336
resources/assets/components/FullscreenCarousel.vue
Normal file
336
resources/assets/components/FullscreenCarousel.vue
Normal file
|
@ -0,0 +1,336 @@
|
|||
<template>
|
||||
<div class="fullscreen-carousel">
|
||||
<div class="glide" ref="glide">
|
||||
<div class="glide__track" data-glide-el="track">
|
||||
<ul class="glide__slides">
|
||||
<li class="glide__slide" v-for="(item, index) in feed" :key="index">
|
||||
<div class="slide-content">
|
||||
<img :src="item.media_url" :alt="item.caption" class="slide-image" loading="lazy">
|
||||
<div v-if="withOverlay" class="slide-overlay">
|
||||
<p v-if="withLinks" class="slide-username"><a :href="item.account.url">{{ webfinger }}</a></p>
|
||||
<p v-else class="slide-username">{{ webfinger }}</p>
|
||||
<div class="d-flex gap-1">
|
||||
<div v-if="withLinks" class="slide-date">
|
||||
<a :href="item.url" target="_blank">{{ formatDate(item.created_at) }}</a>
|
||||
</div>
|
||||
<div v-else class="slide-date">{{ formatDate(item.created_at) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="glide__arrows" data-glide-el="controls">
|
||||
<button class="glide__arrow glide__arrow--left fancy-arrow" data-glide-dir="<">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polyline points="15 18 9 12 15 6"></polyline>
|
||||
</svg>
|
||||
</button>
|
||||
<button class="glide__arrow glide__arrow--right fancy-arrow" data-glide-dir=">">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<polyline points="9 18 15 12 9 6"></polyline>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Glide from '@glidejs/glide'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
feed: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
canLoadMore: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
withLinks: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
withOverlay: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
autoPlay: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
autoPlayInterval: {
|
||||
type: Number,
|
||||
default: () => { return 5000; }
|
||||
}
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
glideInstance: null
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.initGlide()
|
||||
},
|
||||
|
||||
computed: {
|
||||
webfinger: {
|
||||
get() {
|
||||
if(this.feed && this.feed.length) {
|
||||
const account = this.feed[0].account
|
||||
const domain = new URL(account.url).host
|
||||
return `@${account.username}@${domain}`
|
||||
}
|
||||
return ""
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
initGlide() {
|
||||
this.glideInstance = new Glide(this.$refs.glide, {
|
||||
type: 'carousel',
|
||||
startAt: 0,
|
||||
perView: 1,
|
||||
gap: 0,
|
||||
hoverpause: false,
|
||||
autoplay: this.autoPlay ? this.autoPlayInterval : false,
|
||||
keyboard: true
|
||||
})
|
||||
|
||||
this.glideInstance.on('run.after', this.checkForPagination)
|
||||
this.glideInstance.mount()
|
||||
},
|
||||
|
||||
checkForPagination() {
|
||||
const currentIndex = this.glideInstance.index
|
||||
if (currentIndex === this.feed.length - 1 && this.canLoadMore) {
|
||||
this.$emit('load-more')
|
||||
}
|
||||
},
|
||||
|
||||
loadMore() {
|
||||
this.$emit('load-more')
|
||||
},
|
||||
|
||||
formatDate(dateInput, locale = navigator.language) {
|
||||
let date;
|
||||
|
||||
if (typeof dateInput === 'string') {
|
||||
date = new Date(dateInput);
|
||||
if (isNaN(date.getTime())) {
|
||||
throw new Error('Invalid date string. Please provide a valid ISO 8601 format.');
|
||||
}
|
||||
} else if (dateInput instanceof Date) {
|
||||
date = dateInput;
|
||||
} else {
|
||||
throw new Error('Invalid input. Please provide a Date object or an ISO 8601 string.');
|
||||
}
|
||||
|
||||
const options = {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
hour: 'numeric',
|
||||
minute: 'numeric',
|
||||
hour12: true
|
||||
};
|
||||
|
||||
return new Intl.DateTimeFormat(locale, options).format(date);
|
||||
},
|
||||
|
||||
updateGlide() {
|
||||
this.$nextTick(() => {
|
||||
if (this.glideInstance) {
|
||||
this.glideInstance.update()
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
feed() {
|
||||
this.updateGlide()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.fullscreen-carousel {
|
||||
height: 100dvh;
|
||||
width: 100dvw;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
z-index: 2;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.glide, .glide__track, .glide__slides, .glide__slide {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.slide-content {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.slide-image {
|
||||
object-fit: contain;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.slide-overlay {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
color: white;
|
||||
padding: 8px 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.gap-1 {
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.slide-image {
|
||||
.slide-overlay {
|
||||
&:not(:hover) {
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
transform: height 1s ease;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.slide-username {
|
||||
margin: 0;
|
||||
user-select: all;
|
||||
font-size: 14px;
|
||||
|
||||
a {
|
||||
color: white;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
.slide-caption {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.slide-date {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
|
||||
a {
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.glide__arrow {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
border: none;
|
||||
font-size: 24px;
|
||||
padding: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.fancy-arrow {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border: none;
|
||||
border-radius: 50%;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fancy-arrow:hover {
|
||||
background: rgba(255, 255, 255, 0.4);
|
||||
box-shadow: 0 0 15px rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.fancy-arrow:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.fancy-arrow svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
color: white;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.fancy-arrow:hover svg {
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
.glide__arrow--left {
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.glide__arrow--right {
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
transform: translateY(-50%) scale(1);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(-50%) scale(1.05);
|
||||
}
|
||||
100% {
|
||||
transform: translateY(-50%) scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.fancy-arrow:active {
|
||||
animation: pulse 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.fancy-arrow {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.fancy-arrow svg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.glide__arrow--left {
|
||||
left: 10px;
|
||||
}
|
||||
|
||||
.glide__arrow--right {
|
||||
right: 10px;
|
||||
}
|
||||
}
|
||||
</style>
|
197
resources/assets/components/ProfileCarousel.vue
Normal file
197
resources/assets/components/ProfileCarousel.vue
Normal file
|
@ -0,0 +1,197 @@
|
|||
<template>
|
||||
<div class="profile-carousel-component">
|
||||
<template v-if="showSplash">
|
||||
<SplashScreen />
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<template v-if="emptyFeed">
|
||||
<div class="bg-dark d-flex justify-content-center align-items-center w-100 h-100">
|
||||
<div>
|
||||
<h2 class="text-light">Oops! This account hasn't posted yet or is private.</h2>
|
||||
<a href="/" class="font-weight-bold text-muted">Go back home</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<FullscreenCarousel
|
||||
:feed="feed"
|
||||
:withLinks="withLinks"
|
||||
:withOverlay="withOverlay"
|
||||
:autoPlay="autoPlay"
|
||||
:autoPlayInterval="autoPlayInterval"
|
||||
:canLoadMore="hasMoreData"
|
||||
@load-more="loadMoreData"
|
||||
/>
|
||||
</template>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SplashScreen from './SplashScreen.vue';
|
||||
import FullscreenCarousel from './FullscreenCarousel.vue'
|
||||
|
||||
export default {
|
||||
props: ['profile-id'],
|
||||
|
||||
components: {
|
||||
SplashScreen,
|
||||
FullscreenCarousel
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
showSplash: true,
|
||||
profile: {},
|
||||
feed: [],
|
||||
emptyFeed: false,
|
||||
hasMoreData: false,
|
||||
withLinks: true,
|
||||
withOverlay: true,
|
||||
autoPlay: false,
|
||||
autoPlayInterval: 5000,
|
||||
maxId: null
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
const url = new URL(window.location.href);
|
||||
const params = url.searchParams;
|
||||
if(params.has('linkless') == true) {
|
||||
this.withLinks = false;
|
||||
}
|
||||
|
||||
if(params.has('clean') == true) {
|
||||
this.withOverlay = false;
|
||||
}
|
||||
|
||||
if(params.has('interval') == true) {
|
||||
const val = parseInt(params.get('interval'));
|
||||
const valid = this.validateIntegerRange(val, { min: 1000, max: 30000 })
|
||||
if(valid) {
|
||||
this.autoPlayInterval = val;
|
||||
}
|
||||
}
|
||||
|
||||
if(params.has('autoplay') == true) {
|
||||
this.autoPlay = true;
|
||||
|
||||
}
|
||||
this.init();
|
||||
},
|
||||
|
||||
methods: {
|
||||
async init() {
|
||||
await axios.get(`/api/pixelfed/v1/accounts/${this.profileId}/statuses?media_type=photo&limit=10`)
|
||||
.then(res => {
|
||||
if(!res || !res.data || !res.data.length) {
|
||||
this.emptyFeed = true;
|
||||
return;
|
||||
}
|
||||
|
||||
this.maxId = this.arrayMinId(res.data);
|
||||
const posts = res.data.flatMap(post =>
|
||||
post.media_attachments.filter(media => {
|
||||
return ['image/jpeg','image/png', 'image/jpg', 'image/webp'].includes(media.mime)
|
||||
}).map(media => ({
|
||||
media_url: media.url,
|
||||
id: post.id,
|
||||
caption: post.content_text,
|
||||
created_at: post.created_at,
|
||||
url: post.url,
|
||||
account: {
|
||||
username: post.account.username,
|
||||
url: post.account.url
|
||||
}
|
||||
}))
|
||||
);
|
||||
this.feed = posts;
|
||||
this.hasMoreData = res.data.length === 10;
|
||||
setTimeout(() => {
|
||||
this.showSplash = false;
|
||||
}, 3000);
|
||||
})
|
||||
},
|
||||
|
||||
async fetchMore() {
|
||||
await axios.get(`/api/pixelfed/v1/accounts/${this.profileId}/statuses?media_type=photo&limit=10&max_id=${this.maxId}`)
|
||||
.then(res => {
|
||||
this.maxId = this.arrayMinId(res.data);
|
||||
const posts = res.data.flatMap(post =>
|
||||
post.media_attachments.filter(media => {
|
||||
return ['image/jpeg','image/png', 'image/jpg', 'image/webp'].includes(media.mime)
|
||||
}).map(media => ({
|
||||
media_url: media.url,
|
||||
id: post.id,
|
||||
caption: post.content_text,
|
||||
created_at: post.created_at,
|
||||
url: post.url,
|
||||
account: {
|
||||
username: post.account.username,
|
||||
url: post.account.url
|
||||
}
|
||||
}))
|
||||
);
|
||||
this.feed.push(...posts);
|
||||
this.hasMoreData = res.data.length === 10;
|
||||
})
|
||||
},
|
||||
|
||||
arrayMinId(arr) {
|
||||
if (arr.length === 0) return null;
|
||||
let smallest = BigInt(arr[0].id);
|
||||
for (let i = 1; i < arr.length; i++) {
|
||||
const current = BigInt(arr[i].id);
|
||||
if (current < smallest) {
|
||||
smallest = current;
|
||||
}
|
||||
}
|
||||
return smallest.toString();
|
||||
},
|
||||
|
||||
loadMoreData() {
|
||||
this.fetchMore();
|
||||
},
|
||||
|
||||
validateIntegerRange(value, options = {}) {
|
||||
if (typeof value !== 'number' || !Number.isInteger(value)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const {
|
||||
min = Number.MIN_SAFE_INTEGER,
|
||||
max = Number.MAX_SAFE_INTEGER,
|
||||
inclusiveMin = true,
|
||||
inclusiveMax = true
|
||||
} = options;
|
||||
|
||||
if (min !== undefined && !Number.isInteger(min)) {
|
||||
return false;
|
||||
}
|
||||
if (max !== undefined && !Number.isInteger(max)) {
|
||||
return false;
|
||||
}
|
||||
if (min > max) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const aboveMin = inclusiveMin ? value >= min : value > min;
|
||||
const belowMax = inclusiveMax ? value <= max : value < max;
|
||||
|
||||
return aboveMin && belowMax;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
.profile-carousel-component {
|
||||
display: block;
|
||||
width: 100dvw;
|
||||
height: 100dvh;
|
||||
z-index: 2;
|
||||
background: #000;
|
||||
}
|
||||
</style>
|
46
resources/assets/components/SplashScreen.vue
Normal file
46
resources/assets/components/SplashScreen.vue
Normal file
|
@ -0,0 +1,46 @@
|
|||
<template>
|
||||
<div class="splash-screen" :class="{ 'fade-out': fadeOut }">
|
||||
<img src="/img/pixelfed-icon-white.svg" alt="Pixelfed Logo" class="logo">
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
fadeOut: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
setTimeout(() => {
|
||||
this.fadeOut = true
|
||||
}, 2000)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.splash-screen {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 9999;
|
||||
transition: opacity 1s ease-out;
|
||||
}
|
||||
|
||||
.logo {
|
||||
max-width: 200px;
|
||||
max-height: 200px;
|
||||
}
|
||||
|
||||
.fade-out {
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
</style>
|
5
resources/assets/js/profile.js
vendored
5
resources/assets/js/profile.js
vendored
|
@ -28,6 +28,11 @@ Vue.component(
|
|||
require('./components/PostMenu.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'profile-carousel',
|
||||
require('./../components/ProfileCarousel.vue').default
|
||||
);
|
||||
|
||||
Vue.component(
|
||||
'profile',
|
||||
require('./components/Profile.vue').default
|
||||
|
|
2
resources/assets/sass/profile.scss
vendored
Normal file
2
resources/assets/sass/profile.scss
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
@import "node_modules/@glidejs/glide/src/assets/sass/glide.core.scss";
|
||||
@import "node_modules/@glidejs/glide/src/assets/sass/glide.theme.scss";
|
42
resources/views/profile/show_carousel.blade.php
Normal file
42
resources/views/profile/show_carousel.blade.php
Normal file
|
@ -0,0 +1,42 @@
|
|||
@extends('layouts.blank', [
|
||||
'title' => $profile->name . ' (@' . $acct . ') - Pixelfed',
|
||||
'ogTitle' => $profile->name . ' (@' . $acct . ')',
|
||||
'ogType' => 'profile'
|
||||
])
|
||||
|
||||
@php
|
||||
$acct = $profile->username . '@' . config('pixelfed.domain.app');
|
||||
$metaDescription = \App\Services\AccountService::getMetaDescription($profile->id);
|
||||
@endphp
|
||||
|
||||
@section('content')
|
||||
@if (session('error'))
|
||||
<div class="alert alert-danger text-center font-weight-bold mb-0">
|
||||
{{ session('error') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<profile-carousel profile-id="{{$profile->id}}" />
|
||||
|
||||
@endsection
|
||||
|
||||
@push('meta')<meta name="description" content="{{$metaDescription}}">
|
||||
<meta property="og:description" content="{{$metaDescription}}">
|
||||
<meta property="og:image" content="{{$profile->avatarUrl()}}">
|
||||
<meta property="og:image:width" content="200">
|
||||
<meta property="og:image:height" content="200">
|
||||
<meta property="twitter:card" content="summary">
|
||||
<meta property="profile:username" content="{{$acct}}">
|
||||
<link href="{{$profile->permalink('.atom')}}" rel="alternate" title="{{$profile->username}} on Pixelfed" type="application/atom+xml">
|
||||
<link href="{{$profile->permalink()}}" rel="alternate" type="application/activity+json">
|
||||
<meta name="application-name" content="Pixelfed">
|
||||
<meta name="generator" content="pixelfed">
|
||||
<link href="{{ mix('css/profile.css') }}" rel="stylesheet">
|
||||
@if($profile->website)<link href="{{$profile->website}}" rel="me" type="text/html">
|
||||
@endif
|
||||
@if(false == $settings['crawlable'] || $profile->remote_url)<meta name="robots" content="noindex, nofollow">@endif
|
||||
@endpush
|
||||
|
||||
@push('scripts')<script type="text/javascript" src="{{ mix('js/profile.js') }}"></script>
|
||||
<script type="text/javascript" defer>App.boot();</script>
|
||||
@endpush
|
1
webpack.mix.js
vendored
1
webpack.mix.js
vendored
|
@ -13,6 +13,7 @@ mix.sass('resources/assets/sass/app.scss', 'public/css')
|
|||
.sass('resources/assets/sass/admin.scss', 'public/css')
|
||||
.sass('resources/assets/sass/portfolio.scss', 'public/css')
|
||||
.sass('resources/assets/sass/spa.scss', 'public/css')
|
||||
.sass('resources/assets/sass/profile.scss', 'public/css')
|
||||
.sass('resources/assets/sass/landing.scss', 'public/css').version();
|
||||
|
||||
mix.js('resources/assets/js/app.js', 'public/js')
|
||||
|
|
Loading…
Add table
Reference in a new issue