thoth-note 0.1.1

A simple note-taking app written in Rust
use ratatui::layout::{Constraint, Direction, Layout, Rect};

use crate::app::View;

pub struct Areas {
    pub note_list: Rect,
    pub preview: Option<Rect>,
    pub editor: Option<Rect>,
}

pub fn create_layout(area: Rect, view: View) -> Areas {
    if let View::LivePreview = view {
        let columns = Layout::default()
            .direction(Direction::Horizontal)
            .constraints(
                [
                    Constraint::Percentage(20),
                    Constraint::Percentage(40),
                    Constraint::Percentage(40),
                ]
                .as_ref(),
            )
            .split(area);

        return Areas {
            note_list: columns[0],
            preview: Some(columns[2]),
            editor: Some(columns[1]),
        };
    }
    let columns = Layout::default()
        .direction(Direction::Horizontal)
        .constraints([Constraint::Percentage(20), Constraint::Percentage(80)].as_ref())
        .split(area);

    match view {
        View::Editor => Areas {
            note_list: columns[0],
            preview: None,
            editor: Some(columns[1]),
        },
        View::Preview => Areas {
            note_list: columns[0],
            preview: Some(columns[1]),
            editor: None,
        },
        _ => Areas {
            note_list: columns[0],
            preview: Some(columns[1]),
            editor: None,
        },
    }
}