A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 36811c66ea8861375d11c411069c8b9e599453f2 112 lines 3.0 kB view raw
1// Prevents additional console window on Windows in release, DO NOT REMOVE!! 2#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 3 4use tauri::{webview::Url, AppHandle, WebviewBuilder, WebviewUrl, WindowBuilder}; 5use tauri::{Manager, Runtime}; 6use tauri_plugin_positioner::{Position, WindowExt}; 7use tauri_plugin_window_state::{StateFlags, WindowExt as WindowStateExt}; 8 9// 🚀 PRODUCTION 10 11#[cfg(not(dev))] 12fn main() { 13 let port = 44999; 14 let url = format!("http://localhost:{}", port).parse().unwrap(); 15 16 let builder = default_builder().plugin(tauri_plugin_localhost::Builder::new(port).build()); 17 18 setup(url, builder) 19} 20 21// 💣 DEVELOPMENT 22 23#[cfg(dev)] 24fn main() { 25 let port = 8000; 26 let url = format!("http://localhost:{}", port).parse().unwrap(); 27 28 let builder = default_builder(); 29 30 setup(url, builder) 31} 32 33// BUILDER 34 35fn default_builder() -> tauri::Builder<tauri::Wry> { 36 tauri::Builder::default() 37 .plugin(tauri_plugin_fs::init()) 38 .plugin(tauri_plugin_shell::init()) 39 .plugin(tauri_plugin_dialog::init()) 40 .plugin(tauri_plugin_window_state::Builder::default().build()) 41} 42 43// WINDOWS 44 45fn build_window(app: &AppHandle, url: Url) { 46 let monitor = app.primary_monitor().unwrap(); 47 48 let height; 49 let width; 50 51 match monitor { 52 Some(m) => { 53 height = (m.size().height as f64 / m.scale_factor()) - 80.0; 54 width = (m.size().width as f64 / m.scale_factor()) - 40.0; 55 } 56 57 None => { 58 height = 675.0; 59 width = 1080.0; 60 } 61 } 62 63 let mut window_builder = WindowBuilder::new(app, "main") 64 .title("Diffuse") 65 .theme(None) 66 .inner_size(width, height); 67 68 window_builder = title_styles(window_builder); 69 70 let window = window_builder.build().unwrap(); 71 window.move_window(Position::Center).unwrap(); 72 window.restore_state(StateFlags::all()).unwrap(); 73 74 let webview_builder = WebviewBuilder::new("main", WebviewUrl::External(url)) 75 .auto_resize() 76 .enable_clipboard_access() 77 .user_agent("Chrome"); 78 79 window 80 .add_child( 81 webview_builder, 82 tauri::LogicalPosition::new(0, 0), 83 window.inner_size().unwrap(), 84 ) 85 .unwrap(); 86 87 window.set_resizable(true).unwrap(); 88} 89 90#[cfg(target_os = "macos")] 91fn title_styles<R: Runtime, M: Manager<R>>(builder: WindowBuilder<R, M>) -> WindowBuilder<R, M> { 92 return builder 93 .title_bar_style(tauri::TitleBarStyle::Overlay) 94 .hidden_title(true); 95} 96 97#[cfg(not(target_os = "macos"))] 98fn title_styles<R: Runtime, M: Manager<R>>(builder: WindowBuilder<R, M>) -> WindowBuilder<R, M> { 99 return builder; 100} 101 102// SETUP 103 104fn setup(url: Url, builder: tauri::Builder<tauri::Wry>) { 105 builder 106 .setup(move |app| { 107 build_window(app.handle(), url); 108 Ok(()) 109 }) 110 .run(tauri::generate_context!()) 111 .expect("error while running tauri application"); 112}